CTFshow-WEB入门-爆破

web21

学习到了bp新的爆破姿势,custom iterator的使用
抓包发现我们要爆破的内容是这个:Authorization: Basic YWRtaW46MQ==
base64解密,发现类似这样 admin:123456
因此使用自定义迭代器:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对密码进行爆破,此外还要进行base64加密:
在这里插入图片描述
特别需要注意得是,不要对这些字符url编码:
在这里插入图片描述
base64加密后可能有=,对=进行url编码的话就会出问题:
在这里插入图片描述

web22

爆破子域名,得到flag.ctfer.com,访问http://flag.ctfer.com/index.php得到flag

web23

写一个简单的PHP爆一下:

<?php
for($v1=0;$v1<10;$v1++)
    for($v2=0;$v2<10;$v2++)
        for($v3=0;$v3<10;$v3++){
    
    
            $v=$v1.$v2.$v3;
            $token = md5($v);
            if (substr($token, 1, 1) === substr($token, 14, 1) && substr($token, 14, 1) === substr($token, 17, 1)) {
    
    
                if ((intval(substr($token, 1, 1)) + intval(substr($token, 14, 1)) + substr($token, 17, 1)) / substr($token, 1, 1) === intval(substr($token, 31, 1))) {
    
    
                    echo $v;
                }
            }
        }

?>

爆的是422。

web24

PHP随机数的漏洞:

由于mt_rand()的生成的随机数只跟seed和调用该函数的次数有关。举一个简单的例子来说明一下这个问题,假设使用mt_srand(1111111)进行了一次播种操作,接下来调用mt_rand()函数,第一次生成的数值为a,第二次生成的为b,第三次生成的为c。任何一个人拿到这样的一串代码,所执行的结果都是跟刚刚描述的一样。所以当你的seed数值被他人知道后,就可以预测出你接下来的数值是多少,这就是该函数的一个问题,他并不能起到一个真随机数的作用。

唯一可能出问题的点就是PHP的版本,不同的版本在相同的种子下给的随机数也不同,因此PHP的大版本要相同,然后

<?php
mt_srand(372619038);
echo intval(mt_rand());

得到要传的r值。

web25

还是PHP随机数的漏洞,利用工具来爆破种子:
在这里插入图片描述

因为题目的环境是7.3.11,因此符合条件的种子只有2个,经过尝试第二个是对的:

<?php
mt_srand(3430596594);
$a=mt_rand();
$b=mt_rand();
$c=mt_rand();
echo $a."\n";
echo $b."\n";
echo $c."\n";
<?php

$a = 166385267;
$b = 1802191555;
echo $a + $b;

最后传一下就可以了:
在这里插入图片描述

web26

没懂这题啥意思,全空直接得flag:

在这里插入图片描述

web27

又学习到了一种bp的爆破姿势,日期爆破。我一看估计就是爆破身份证号码里面那段出生日期了,但是不知道该怎么爆破,看了一下WP,姿势如下:

在这里插入图片描述
在这里插入图片描述
得到学号和密码,登录即可得到flag。

web28

爆了没爆出来,看了WP,爆破的方式非常奇怪,有点脑洞了:
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/rfrder/article/details/112860654