爆破

web中爆破题目通常分为两种:

一种是审计代码,一般是md5相关加密,分析代码编写脚本进行爆破,类似密码学。

另一种则是爆破相关信息,如登录密码或身份证号等。该爆破一般需要结合burpsuite的Intruder功能来发包爆破,根据响应的状态码或响应包大小找到正确密码。

例题1:ctfshow-web入门-web21

打开网站是一个登录页面,任意输入用户名admin和密码123,通过burpsuite抓包获取到如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
GET / HTTP/1.1
Host: 3e2ac8dd-277f-4df1-a1a7-65d527096673.challenge.ctf.show
Connection: close
Cache-Control: max-age=0
Authorization: Basic YWRtaW46MTIz
sec-ch-ua: "Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: https://3e2ac8dd-277f-4df1-a1a7-65d527096673.challenge.ctf.show/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9

其中Authorization中的YWRtaW46MTIz为admin:123的base64编码结果,因此我们需要爆破该地方密码。

爆破步骤:

  • 题目给了dic字典集,因此在burpsuite中send Intruder后,选择positions为Sinper,即设置一个爆破点,并对该位置添加$符号来指明爆破的是该位置变量, §YWRtaW46MTIz§。

  • 由于该变量包含了用户名admin,且为base64编码,因此在Payload Pcoessing中添加两条规则,一个是前缀admin:,一个是base64编码,并取消勾选url-encode these characters防止把base64中的=当作url编码。

  • type选择Simple list并load dic字典集,通过start attack爆破即可。

例题2:ctfshow-web入门-web28

打开网站自动重定向到url/0/1/2.txt,且路径是数字,猜测是爆破路径,有三重路径,第三重其实没用,爆破前两重0-100即可。

爆破过程同上,不过这个需要爆破两个变量,需要添加两个$符号并选择attack type:Cluster bomb,在payloads分别为两个变量选择数字并指定范围,爆破即可。