ctfshow-web入门-爆破wp

前置软件

最好是用火狐浏览器,FoxyProxy插件,burpsuite,ctfshow给的字典附件

如何配置的问题去别的博客搜,都有。

web21(爆破base64加密后的账号密码)

这里访问题目的时候就要开始抓包,然后点forward放包

ctfshow-web入门-爆破wp_第1张图片

然后在题目那里输入账号密码,以admin/admin为例,点击登录ctfshow-web入门-爆破wp_第2张图片

又抓到了一个包,可以看到base64加密后的账号密码

ctfshow-web入门-爆破wp_第3张图片

 CTRL+I放到Intruder爆破模块。添加变量

ctfshow-web入门-爆破wp_第4张图片

 payloadtype选Custom iterrator,position1填admin,position2填:  ,position3导入字典

ctfshow-web入门-爆破wp_第5张图片

往下滑paylaod processing选择base64encode

ctfshow-web入门-爆破wp_第6张图片

 爆破完成后按长度排序发现一个200的状态码

ctfshow-web入门-爆破wp_第7张图片

 查看响应头发现flag

ctfshow-web入门-爆破wp_第8张图片

web22(子域名爆破)

推荐用OneForAll爆破,项目地址:GitHub - shmilylty/OneForAll: OneForAll是一款功能强大的子域收集工具

 或者用在线子域名爆破网站:在线子域名查询

提示说这题域名已失效,直接提交flag即可ctfshow-web入门-爆破wp_第9张图片

 web23(md5爆破)

 

代码要求get传入的token经过md5加密后,第1位=第14位=第17位并且(第1位+第14位+第17位)/第1位=第31位,可以写一个php脚本跑一下,应该有很多种可能。

结果有两个

 随便输入一个提交token即可获得flag。ctfshow-web入门-爆破wp_第10张图片

 web24(php伪随机数)

  Linux version 5.4.0-131-generic (buildd@lcy02-amd64-108) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 Linux version 5.4.0-131-generic (buildd@lcy02-amd64-108) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022
x1.00

考察php伪随机数的爆破

原理参考文章:PHP的伪随机数爆破_WHOAMIAnony的博客-CSDN博客

发现给了随机数种子

 查看响应头发现服务器php版本为7.3.11

ctfshow-web入门-爆破wp_第11张图片

 直接本地用php跑一下随机数

ctfshow-web入门-爆破wp_第12张图片

结果为1155388967,get传入即可得到flag

web25(爆破php伪随机数种子)

关键代码如下

include("flag.php");
if(isset($_GET['r'])){
    $r = $_GET['r'];
    mt_srand(hexdec(substr(md5($flag), 0,8)));
    $rand = intval($r)-intval(mt_rand());
    if((!$rand)){
        if($_COOKIE['token']==(mt_rand()+mt_rand())){
            echo $flag;
        }
    }else{
        echo $rand;
    } 

传参r=0,这样就可以得到第一次mt_rand()的负数ctfshow-web入门-爆破wp_第13张图片

将117383695拿去爆破,可能出现的随机数种子如下ctfshow-web入门-爆破wp_第14张图片

 通过查看响应头可知网站用的是php7.3的版本,接下来要绕过以下代码

 if((!$rand)){
        if($_COOKIE['token']==(mt_rand()+mt_rand())){

令r=117383695可以使得!$rand为真,mt_rand()的值本地测试代码如下,经过尝试2590851206为随机数种子.

if($_COOKIE['token']==(mt_rand()+mt_rand()))

通过该行代码我们知道要将两个随机数相加,本地测试代码如下:

输出结果如下:

 利用hackbar进行get传参,modheader插件进行cookie传参得到flag

最终payload

?r=117383695

Cookie:token=1886562161

web26(数据库密码爆破)

进入容器直接点击开始安装,出现install.php的界面,直接填信息,开始安装,果然报错了,抓个包看看。

ctfshow-web入门-爆破wp_第15张图片

 感觉是密码错了,直接放入爆破模块,将密码设为变量,字典是网上很常见的top1000,直接开始爆破,竟然没爆出来。直接上了个2w的字典,结果如下:

ctfshow-web入门-爆破wp_第16张图片

 

 我看有的师傅参数全部设置为空,传上去也能得到flag,目前不知道什么原理

ctfshow-web入门-爆破wp_第17张图片

 web27(身份证爆破)

登录网站发现有录取名单,下载下来看一下发现有姓名和身份证号,发现身份证号就缺了生日那部分。

ctfshow-web入门-爆破wp_第18张图片

 接着看题发现了一个学籍管理系统可以验证姓名和身份证的地方

ctfshow-web入门-爆破wp_第19张图片

 

 这时候我们的思路就是可以借助burpsuite进行爆破。先抓包,可能直接点查询不是这个包,forward一下就行ctfshow-web入门-爆破wp_第20张图片

 Ctrl+i发送到爆破模块进行如下配置

ctfshow-web入门-爆破wp_第21张图片

 开始爆破,然后按长度length排序,发现一个成功

ctfshow-web入门-爆破wp_第22张图片

将unicode进行在线解码,得到账号密码

ctfshow-web入门-爆破wp_第23张图片

 登录成功后获得flagctfshow-web入门-爆破wp_第24张图片

 web28(爆破目录)

没啥思路,看看提示

 很明确了,去burp爆破目录就行了。模式改成第四个,参数设置俩个ctfshow-web入门-爆破wp_第25张图片

 payloads这样设置

ctfshow-web入门-爆破wp_第26张图片

ctfshow-web入门-爆破wp_第27张图片 

然后点击开始攻击,爆破的时候点击设置,只显示2xx的响应包ctfshow-web入门-爆破wp_第28张图片

 爆破完后会出现一个成功的包,响应包里有flagctfshow-web入门-爆破wp_第29张图片

         

你可能感兴趣的:(php,网络安全,web安全)