- web25
- 题目:
- 解题思路及步骤:分析代码:
- 题目:
error_reporting(0);
include("flag.php");//包含文件flag.php
if(isset($_GET['r'])){$r = $_GET['r'];//获取参数rmt_srand(hexdec(substr(md5($flag), 0,8)));$rand = intval($r)-intval(mt_rand());if((!$rand)){//如果cookie中有一个token的值,并且是第二次和第三次生成的伪随机数的加和,则输出flagif($_COOKIE['token']==(mt_rand()+mt_rand())){echo $flag;}}else{echo $rand;}
}else{highlight_file(__FILE__);echo system('cat /proc/version');
}
3. 于是就构造思路,首先,r=0,可以得到第一次生成伪随机数的值,于是尝试可得:由于要获得第二个和第三个伪随机数的值,因此要爆破 出种子的值,查阅大佬的wp,知道了一个反向爆破伪随机数种子的工具:php_mt_seed,下载链接:[php_mt_seed下载地址](https://www.openwall.com/php_mt_seed/)点击下载解压就行,之后将其拖进kali,并在当前目录打开终端,使用命令:./php_mt_seed 伪随机数,
4. 可以生成各种php版本的种子值,那么么知道是哪个种子呢:这时候就要用另一个插件:wappalyzer,在下载的时候踩了个小坑,应该是网络问题,于是通过科学上网后就可以了发现是7.3.11,于是就用这个种子:3592930756 编写php脚本,获得第二次第三次伪随机数的值以及两者的和
<?php
mt_srand(3592930756);
$_rand1=mt_rand();
$_rand2=mt_rand();
$_rand3=mt_rand();
echo $_rand1."\n";
echo $_rand2."\n";
echo $_rand3."\n";
echo $_rand2+$_rand3;
?>
//输出:
1586689415
696668555
71549292
768217847
5. 于是使用hackbar,设置cookie:token:768217847得到:于是flag为:
6. 相关知识点:新插件wappalyzer的使用,以及新工具:php_mt_seed 4.0 的使用
-
web26
- 题目:
- 解题思路及步骤:进入题目,发现没有什么异常,于是进行抓包,先输入几个东西看看,发现啥也没有,
于是进行爆破:发现什么也不输入的时候直接出了
flag - 相关知识点:抓包,多个密码爆破
- 题目:
-
web27
- 题目:
- 解题思路及步骤:进入题目看到一个平台登录系统,于是对其他地方进行点击查看,发现录取名典那里可以点击,之后下载了一个文件,可以看到,身份证号被加密了一部分:
- 好巧不巧,后面还有学生学籍信息查询系统,
但是身份证号码不知道,于是就需要破解身份证号,而加密的地方就是出生年月,于是可以进行爆破,我的方法是分三部分,年,月,日,于是就采用集束炸弹模式进行:
- 年就规定从1990-2010(都大学生了应该最少有十几岁了吧),月:01-12,日:01-31,这里要记得将月和日的长度设置为2,进行爆破
爆破后发现有个长度不一样的:
对得到的那串unicode进行解码可以得到:
于是可以利用学号和密码进行登录,登录后就得到了flag:
- 相关知识点:burp集束炸弹的使用 坑:抓包时,使用Firefox可能没有数据,换做其他浏览器可以试试
- 题目:
-
web28
- 题目:
- 解题思路及步骤:看到题目什么信息也没给,但是,发现刚进入的靶机地址后面加了两个数字目录。进行目录扫描发现很多数字目录,
- 于是知道这个题考的是目录爆破:于是就使用bp进行爆破,对目录处的0,1进行集束炸弹爆破:都采用数字,0-100
- 得到一个状态不同的:
查看响应包得到flag:
- 相关知识点:注:目录后面那个/去掉就不行了
- 题目: