挖洞经验 | 发现美国海军网站的敏感信息泄露和SQL注入漏洞
作者:admin | 时间:2019-8-30 15:20:42 | 分类:黑客技术 隐藏侧边栏展开侧边栏
最近,作者通过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头等其它一些应用程序特定信息。
这就说明问题了,这绝对是一个严重漏洞(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