forever young
01
背景
在这篇文章中,我将详细介绍我和Orwa Atyat如何成功将一个受限的路径遍历漏洞升级为 RCE,并因此赢得40,000 美元的赏金的故事。
在对我们最喜欢的目标进行侦察和端口扫描时,我们发现了一个子域名http://admin.target.com:8443,虽然响应是404,大多数赏金猎人都会忽略任何返回404的子域名。但我不会!。
02
漏洞挖掘
通过模糊测试http://admin.target.com:8443/FUZZ,我发现/admin/路径会重定向到登录页面http://admin.target.com:8443/admin/faces/jsf/login.xhtml。
在测试此登录端点并未发现任何漏洞后,我决定继续在/admin/路径下进行模糊测试,比如http://admin.target.com:8443/admin/FUZZ。
我偶然发现了一个位于/admin/Download的端点/download/,它返回了一个“200”状态代码,但却是一个空响应。
从端点名称,您可以推断出它的功能!但是,我们缺少正确的参数,我们需要一个100% 有效的文件和路径。因为端点位于/admin/下,所以我们应该在admin目录中查找起作用的文件。
我通常从 JavaScript 文件开始测试 LFI 和路径遍历,因此我使用名为/admin/js/main.js的文件开始测试。这种方法有助于我们确定存在的 LFI和路径遍历漏洞并识别可访问的路径。此外,因为我们需要确定“/download”所需的正确参数,所以我们必须使用一个已知的有效文件,即/admin/js/main.js。这样可以确保在模糊测试时不会错过正确的参数。模糊测试命令的结构如下:
通过模糊测试,我们现在知道/admin/download
接受一个名为filename的参数。因此访问http://admin.target.com:8443/admin/download?filename=/js/main.js
会
显示位于http://admin.target.com:8443/admin/js/main.j
s
的文件;
我首先尝试通过读取/etc/passwd来实现完整的路径遍历。不幸的
是,该/download
功能
仅适用于/admin/*下的文件,任何超出/admin/的外部文件都不起作用。这证实了这里确实有一个受限的
路径遍历漏洞。
由于目标部署在 Java 环境中,我尝试读取/WEB-INF/web.xm
l
,
因为此文件通常包含大量有用信息。通过访问到http://admin.target:
8443/admi
n
/download?fileName=/WEB-INF/web.xml
,我能够获取到了一些有用的信息。
在 /WEB-INF/web.xml 中,我们发现了三个 URL:/download/、/faces/(我们已经知道)和一个新的 URL:/incident-report。访问http://admin.target:8443/admin/incident-report
触发了一些意想不到的事情:它开始下载一个名为incident-report-xxxxxx.zip的巨大日志文件。这个文件竟然是实时生成的日志文件!
每次访问时http://admin.target:8443/admin/incident-report
,都会下载一个新的日志文件,因为日志是实时生成的。
我应该在这里停下来并报告吗?很多猎人可能会在这时候结束他们的探索!
不!
03
扩大影响
安全小白团
第一个密码无效,但第二个密码 Glglgl123 有效。
因此我再次尝试用admin:Glglgl123登录
/admin/faces/jsf/login.xhtml
,竟然可以作为管理员登录访问面板!
在深入研究之前,让我们先了解一下Groovy Console。
04
RCE的实现
安全小白团
print "id".execute().textprint "sudo cat /etc/passwd".execute().text
05
漏洞链的利用
安全小白团
经验教训和总结
参考及来源:https://medium.com/@HX007/a-journey-of-limited-path-traversal-to-rce-with-40-000-bounty-fc63c89576ea
06
免责&版权声明
安全小白团
转发
收藏
点赞
在看
原文始发于微信公众号(安全小白团):从路径遍历到RCE:解锁$40,000赏金的黑客进阶之路
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论