77

挖洞经验 | 发现美国海军网站的敏感信息泄露和SQL注入漏洞

 4 years ago
source link: https://www.tuicool.com/articles/6jYJJ3b
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

6NZfYjf.jpg!web

最近,作者通过HackerOne的美国国防部漏洞众测项目(Hack The Pentagon),发现了美国海军某网站的敏感信息泄露和SQL注入两个高危严重漏洞,漏洞非常容易发现且安全风险极高,以下是相关分享。

#519418 - 敏感信息泄露

#519631 - SQL注入

发现漏洞

由于我将在2020年底上大学,因此最近我打算申请美国海军后备军官训练队的奖学金(Naval ROTC),出于这个原因,在访问海军部队申请奖学金的教育培训网站时,我也顺便做了一些安全测试。当然,该海军相关网站也在 HackerOne的美国国防部漏洞众测项目 范围之内。令我惊讶的是,我竟然在这个网站中发现了多个高危和严重级别漏洞,其中两个尤为特别。

敏感信息泄露漏洞

我在对网站应用的侦察识别过程中,执行了对其子目录/nrotc的未授权Web路径猜解扫描,之后,发现了一个名为Trace.axd的页面,该页面的状态响应码为302,访问它时会跳转到一个登录页面。

Trace.axd:跟踪查看器,ASP.NET架构中的调试器,可用来配置代码跟踪服务以控制如何收集、存储和显示跟踪结果。在网站应用启用该跟踪功能后,可以使用Trace.axd来查看 ASP.NET 收集并缓存的跟踪信息。

然后,我换Firefox打开/nrotc/Trace.axd页面,在其跳转的登录页面中,我输入了一些测试用的常用用户名密码提交,想想它会做何响应。碰巧一对用户名密码登录成功,/nrotc/Trace.axd页面状态响应码为200,最后进入的是一个标题名为“Application Trace”(应用跟踪)的页面。

该页面与网站其它页面不同,我猜想它是Web服务或应用程序的内置调试页面。果然谷歌了一番,我才知道,Trace.axd是ASP.NET中的调试功能,可以保存一些HTTP请求的应用缓存信息。默认情况下,该调试功能只能通过localhost的本机才能访问。我都能远程访问了,这也就是说,该功能可能被人为错误配置远程开启了。

综合来看,值得注意的是:如果我们在使用ASP.NET架构的目标网站上发现一个SSRF漏洞,那么,最简单的提权方法就是,看看我们能否有对Trace.axd的访问权限。

接下来,我想看看这个调试功能页面具体会返回什么,通过一些请求后,我发现其响应返回了一些敏感信息,包括网站注册人员的社会安全号码、用户名、邮箱地址、明文密码、会话token、CSRF token,以及如软件、文件系统和HTTP头等其它一些应用程序特定信息。

36JjQzu.jpg!web

这就说明问题了,这绝对是一个严重漏洞(Critical),如此简单且无需提权,但却极具威胁影响。由于任何人都可到该网站上注册账号,所以任何人都可能发现该漏洞。

SQL注入漏洞

与此同时,我决定再利用上述的调试器功能来对网站做一些深入的测试分析,果不其然,我通过/nrotc/Trace.axd页面,又发现了另外一些我用工具dirsearch无法探测到的网页。

但这些发现的大多数应用页面需要一定的权限才能有效正常响应,但我在该网站注册的账号只属于普通账号,所以我也无法对这些页面深入分析了。某种程度上来说,虽然可以用上述Trace.axd调试器页面的响应信息去劫持一些高权限用户的会话Session,但我觉得那种构造利用太过于复杂了。

穷途末路之时,我发现在一个子目录下,除一个特殊页面之外,其它所有页面都需要更高权限才能访问。于是,我就反回来在Trace.axd中寻找针对这个特殊页面的请求,发现了其POST的请求主体内容,紧接着,我重放了这个请求,但我的会话token就被包含进去了,我捣鼓着尝试把POST中的参数,更改为一些测试SQL注入或XSS的Payload -  ’”>

这下,让我惊讶的是,其中的一个参数竟然存在SQL注入!这种军方系统,还是不敢太过深入,所以我没做进一步的SQL注入代码执行,验证了就行,就点到为止吧。赶紧上报漏洞。

由于我发现上报的以上两个漏洞,我被美国国防部网络犯罪中心(Department of Defense Cyber Crime Center ,DC3)评为当月最佳安全研究员。

经验总结

此外,我对多个美国海军网站进行安全测试后,我得到的一点经验就是:在做前期踩点侦察时对 JavaScript 的逆向分析也很重要,通常,很多Web开发人员会在 JavaScript中留下一些未做明显标记但却可以实现的API功能,而且,这些隐藏功能漏洞百出且很少会被人发现,因此,非常值得对它们进行深入测试。

漏洞上报和处理进程

2019年3月31日:   上报敏感信息泄露漏洞

2019年4月1日:     上报SQL注入漏洞

2019年4月10日:    敏感信息泄露漏洞被修复

2019年4月11日:    SQL注入漏洞被修复

2019年5月6日:     美国国防部评定为 当月最佳安全研究员

2019年8月19日:    在HackerOne上披露以上两个漏洞

*参考来源: aaronesau ,clouds编译整理,转载请注明来自FreeBuf.COM


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK