爆破

Bugku题目-爆破

在学校平台(PCCTF)做题的时候,遇到了这样一道Web题目:

图片[1]-爆破-魔法少女雪殇

它的内容呈现是这样的:

图片[2]-爆破-魔法少女雪殇

嗯……五位数密码,数字并不大,看起来似乎需要暴力破解了。

回到宿舍后,我试图再现这道题,然而宿舍并不链接学校的内网,无法进行记录。

所幸,我在网上开放的CTF题库-Bugku(https://ctf.bugku.com/)找到了呈现形式近乎一样的题——“输入密码查看flag”。

图片[3]-爆破-魔法少女雪殇

链接:http://123.206.87.240:8002/baopo/

初步思路:将链接扔进FireFox浏览器进行抓包,查看HTTP请求数据结构。

图片[4]-爆破-魔法少女雪殇

随意输入密码12345,点击“查看”,使用Burp Suite抓取此次请求:

图片[5]-爆破-魔法少女雪殇

POST /baopo/?yes HTTP/1.1
Host: 123.206.87.240:8002
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 9
Origin: http://123.206.87.240:8002
Connection: close
Referer: http://123.206.87.240:8002/baopo/
Upgrade-Insecure-Requests: 1
pwd=12345

注意最后一句pwd=12345,这就是我们此次破题的重点。我们可以知道,这个POST请求向服务器发送的是一个赋值的pwd表单,我们输入的12345就被赋值在这上面。

到了这时,思路就很清晰了:使用Python的Request包构造HTTP的POST请求,将数据(data)[pwd=密码]对服务器发起请求,然后解析收回的信息,直到获取flag。

具体代码如下:

图片[6]-爆破-魔法少女雪殇

导入requests包,以字符串形式存储目标网址。

构造传入数据parme={‘pwd’:’00001′}

使用for循环,并对parme列表的pwd进行赋值,然后将parme作为data向url服务器发送请求。

相关方法:requests.post(url,data=)

向指定网址url发送表单data=,返回服务器返回字段。

req.contect:返回字段的二进制形式

req.text:返回字段的文本形式

判断返回字段是否含有字符串“flag”,如果有则返回字段,否则返回“失败”。

因为做判断使用的是返回二进制形式的req.contect,所以需要在判断字符串’flag’前加一个b,标记二进制字段。

密码根据提示是五位数,所以我们的循环范围为10000~99999。

解释并启动,查看循环结果:

图片[7]-爆破-魔法少女雪殇

获得flag,flag为flag{bugku-baopo-hah}。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情