web21 bp 攻击模块的迭代器
输入账号密码 抓包 发现下面存在一个base64编码
我输入的是 123 123
发现就是base加密
账号 密码
那我们怎么通过intruder模块 自动变为 base64呢
然后去payload------>custom iterator(自定义迭代器)
位置1导入admin
因为是 账号:密码 这个组合 所以位置2 选择 :
位置3
再一次导入字典
选择编码 我们在下面的进行编码选择
还有记得取消自动url编码
然后直接开始就可以了
web22 域名也可以爆破
Release Layer5.0 SAINTSEC · euphrat1ca/LayerDom ainFinder · GitHub
但是我没找到flag
web23
web24
web25
首先对代码进行查看
include("flag.php");
if(isset($_GET['r'])){
$r = $_GET['r'];
上面都是读取
mt_srand(hexdec(substr(md5($flag), 0,8)));
mt_srand 是一个随机数生成器
生成出来的内容为 mt_rand()
其中的种子是
对md5后的flag的0到8进行十六进制转换的值
$rand = intval($r)-intval(mt_rand());
设置rand为 输入的r - 这个随机数
if((!$rand)){
如果 rand为0
if($_COOKIE['token']==(mt_rand()+mt_rand())){
echo $flag;
}
就输出flag
}else{
echo $rand;
不然就输出 随机数
}
}else{
highlight_file(__FILE__);
echo system('cat /proc/version');
}
这个时候 我们读懂了代码
要的就是我们输入的 r - 随机数 =0
我们先输入一个 0 看看
?r=0
-1403888972
说明现在的 随机数即3(mt_rand)= 1403888972
那我们可以使用工具
GitHub - openwall/php_mt_seed: PHP mt_rand() seed cracker 来爆破
得到了这些数值
那我们可以写一个php 来看看是什么得到了 1403888972
<?php
$num=4266567617;
mt_srand($num);
echo mt_rand();
?>
最后排除到了 两个
这个时候 我们就知道了 mt_rand=4266567617 或者3811577552
if((!$rand)){
if($_COOKIE['token']==(mt_rand()+mt_rand())){
echo $flag;
这里取得了 两次的 mt_rand()
发现 每一次的值是不一样的 所以他总共是取了3次值
这里是第2 3 次
那我们写个代码来测试
测试看看
发现成功了
web26
爆破pass 即可
web27 bp的日期爆破
抓包
最后爆破完成时 19900201
web28
我们爆破目录看看