CTFshow—web入门21-28(爆破)

WEB21

先随意使用一个密码抓包尝试一下

image-20211008202442184

base64解密后发现账号密码的形式为 账号:密码

根据提示我们使用题目所给字典爆破

构造payload,猜测账户名为admin,前半部分不用变,为后半部分迭代即可

image-20211008203916528

导入所给字典

image-20211008203942531

进行base64编码,切记不可为符号再编码,base64可能存在=

image-20211008204041648

attack

拿到flag

image-20211008203703927

或者采用方式二

image-20211008204322660

image-20211008204337063

image-20211008204347606

同样拿下

WEB22

子域名爆破,但是这题爆不出来,直接查看view hint得到flag

WEB23

根据代码编写爆破脚本

一种方法是尝试每一个token值的返回页面,另一种方法爆出token值

方法一

import requests

a = "abcdefghijklmnopqrstuvwxyz0123456789"
for i in a:
    for j in a:
        url ="http://5aad3711-167d-4268-94b4-3bb1a93ae1f0.chall.ctf.show:8080?token="+str(i)+str(j)
        req = requests.get(url=url).text
        if "ctf" in req:
            print(req)
            exit()
        else:
            print(url)

#此方法爆破较慢

image-20211011104250252

方法二

import hashlib

a = '0123456789abcdefghijklmnopqrstuvwxyz'
for i in a:
	for j in a:
		t = (str(i)+str(j)).encode('utf-8')
		md5 = hashlib.md5(t).hexdigest()
		if md5[1:2] == md5[14:15] == md5[17:18]:
			if (int(md5[1:2])+int(md5[14:15])+int(md5[17:18]))/int(md5[1:2]) == int(md5[31:32]):
				print(t)

爆出3j

url后加?token=3j即可

WEB24

看到mt_srand()函数即可知道是伪随机数,每次生成的随机数是一样的

运行脚本

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

得到1155388967

题目所给代码得知传参为r=

所以在url后加?r=1155388967即可

WEB25

r=0,先出一个随机值

image-20211011111234635

用php_mt_seed反解可能存在的seed值

image-20211013201501885

通过如下代码,我们知道要将两个随机数相加得token值

if($_COOKIE[‘token’]==(mt_rand()+mt_rand()))

脚本挨个尝试seed(在网页头文件中发现是PHP7.3,所以只尝试高版本即可)

<?php
mt_srand(种子值);
echo mt_rand()."\n";
echo mt_rand()+mt_rand();

image-20211013201400607

第一个数即为参数r的值,第二个数是token,要用cookie提交

image-20211013201911629

WEB26

在install.php页面源代码处发现js代码、check函数

image-20211013232935033

访问checkdb.php,以post方式提交参数a、p、d、u、pass

这里有一些默认信息

image-20211015125001688

提示登陆失败,猜测是账号或密码错误,这里对密码进行爆破,使用之前web21提供的字典成功爆出密码为7758521,获取flag

image-20211015125152262

image-20211015131454178

WEB27

一个学生信息系统,可以下载到一个录取名单,还有一个学籍查询系统,猜测通过系统可以查到学号录取名单里有姓名和隐去了生日的身份证号,爆破即可

随意提交,查看包

这里有个小问题,火狐抓包文件头显示不完全,用Chrome查看

image-20211015143916322

发现姓名是URL编码,且为post提交

爆破过程中出现大量503页面时需要设置延迟爆破或者降低并发

image-20211015171517906

解Unicode后得到恭喜您,您已被我校录取,你的学号为02015237 初始密码为身份证号码

登陆后获取到flag

WEB28

提示通过暴力破解目录/0-100/0-100

image-20211015154150496

payload1,2相同

image-20211015154208997

报错大量页面503时,降低并发或者设置延时

image-20211015160010673

28

提示通过暴力破解目录/0-100/0-100

[外链图片转存中…(img-fL5urd8M-1634289397156)]

payload1,2相同

[外链图片转存中…(img-gzTTpLId-1634289397157)]

报错大量页面503时,降低并发或者设置延时

[外链图片转存中…(img-Dhk67QEw-1634289397157)]

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shadow丶S

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值