1.内网访问
a:打开靶场,根据提示我们直接构造请求如下
http://challenge-a1acc5028f8081ad.sandbox.ctfhub.com:10800/?url=http://127.0.0.1/flag.php
2.伪协议读取文件
a:根据提示构造请求如下
?url=file:///var/www/html/flag.php
b:然后检查页面源代码,即可得到flag
3.端口扫描
a.打开靶场之后我们可以先看一下提示,他让我们扫描端口8000到9000,结合他是ssrf的题,并且在访问靶场之后网址会变成http://challenge-a330876cf8bc329f.sandbox.ctfhub.com:10800/?url=_可以看到需要来构造一个请求
b.我们构造请求如下http://challenge-a330876cf8bc329f.sandbox.ctfhub.com:10800/?url=127.0.0.1并且利用burpsuit进行抓包
c.因为我们要从8000端口扫到9000端口,所以将数据包发送到爆破模块,并配置如下
d;开始爆破扫描,将长度排序后找不一样的,并查看相应包
4.POST请求
a:打开靶场后根据提示构造请求如下
url=http://127.0.0.1/flag.php
b:访问后可得如下界面
c;然后访问页面源代码,将得到的key的值输入框中,在回车时进行抓包,并将包改为如下
d:然后对数据包进行第一url编码,并且将%0A替换成%0D%0A,在末尾加上%0D%0A,然后进行二次url编码最后将所有/恢复,将前两个 :恢复之后将该内容加到网址后面即可得到flag
5.上传文件
a:首先将靶场网址加上file:///var/www/html/flag.php尝试用file协议去访问,得到以下界面
b:有选择文件的按钮但是没有提交的按钮,那我们就去构造一个,打开检查,找到响应代码,并添加以下内容,便可得到提交按钮
<input type="submit" name="submit">
c:然后随意提交一个php文件,并且抓包
d:并且将包改成以下内容
e:然后对数据包进行第一url编码,并且将%0A替换成%0D%0A,在末尾加上%0D%0A,然后进行二次url编码最后将所有/恢复,将前两个 :恢复之后将该内容加到网址后面即可得到flag
6.FastCGI协议
a:运行我们的工具gopherus-master,使用以下命令,echo输入的命令是一句话木马的base64编码后的内容
b:然后将输出的内容进行url编码,并将前两个冒号给恢复
c:之后将其拼接后访问
d:然后便可以构造命令查找flag
shell.php?cmd=ls /
url=file:///flag 53a8322ae0cbe9d16258c8c2271be0eb
7.Redis协议
a:打开工具gopherus-master并执行如下命令
b:哦然后进行url编码,并将前俩个冒号改回来,然后拼接到网址上并访问,会显示超时,是正常情况
c:然后构造命令进行访问,就可以得到flag
8.URL Bypass
a:访问靶场可以看到我们需要从他给的网址作为开头然后让这个网址作为用户去访问127.0.0.1及加一个@,该方法是利用@进行绕过
?url=http://notfound.ctfhub.com@127.0.0.1/flag.php //请求的URL中必须包含http://notfound.ctfhub.com
9.数字IP Bypass
由题示可以得出这个需要我们进行绕过,提示我们不能用点分10进制去表达网址,所以我们用local host来代替127.0.0.1来访问。
10.302跳转 Bypass
当我们直接构造请求去访问flag.php时,会发现被拦截,此时我们去绕过将1127.0.0.1改为localhost即可。
11.DNS重绑定 Bypass
访问以下网址将两个IP进行DNS重绑定,然后用其访问就可
https://lock.cmpxchg8b.com/rebinder.html