翻译:h4d35

预估稿费:120RMB

投稿办法:发送邮件至linwei#360.cn,或上岸网页版在线投稿

html不执行php从JS文件中发明认证绕过破绽 Ruby

序言

本篇文章紧张先容了在一次漏洞悬赏项目中如何利用配置缺点挖到一个认证绕过漏洞。

从JS文件中创造认证绕过漏洞

本文内容源自一个私有漏洞赏金操持。
在这个漏洞操持中,接管的漏洞范围限于目标网站少数几个公开的功能。
基于前期创造的问题(当我被约请进这个操持时,其他人一共提交了5个漏洞),彷佛很难再挖到新的漏洞。
同时,在赏金详情中提到了这样一句话:

如果你成功进入管理页面,请立即报告,请勿在/admin中进行进一步的测试。

然而,目标网站中存在一个仅限于未认证和未经授权的用户访问的管理页面。
当我们访问/login或/admin时会跳转到https://bountysite.com/admin/dashboard?redirect=/。

对登录页面进行暴力破解大概是一个可行方案,但是我并不喜好这种办法。
看一下网页源码,没什么有用的内容。
于是我开始查看目标网站的构造。
彷佛目标网站的JS文件都放在少数几个文件夹中,如/lib、/js、/application等。

故意思!

祭入迷器BurpSuite,利用Intruder跑一下看能否在上述文件夹中找到任何可访问的JS文件。
将攻击点设置为https://bountysite.com/admin/dashboard/js/attack.js。
把稳,不要忘却.js扩展名,这样如果文件能够访问则返回200相应。
确实故意思!
由于我找到了一些可访问的JS文件,个中一个文件是/login.js。

访问这个JS文件https://bountysite.com/admin/dashboard/js/login.js,要求被重定向至管理页面:) 。
但是,我并没有查看该文件的权限,只能看到部分接口信息。

但是我并没有就此止步。
这看起来很奇怪,为什么我访问一个.js文件却被作为HTML加载了呢?经由一番探查,终于创造,我能够访问管理页面的缘故原由在于login。
是的,只要在要求路径/dashboard/后的字符串中含有login(除了'login',这只会使我回到登录页面),要求就会跳转到这个管理接口,但是却没有精确的授权。

我连续对这个受限的管理接口进行了进一步的测试。
再一次查看了页面源码,试着搞清楚网站构造。
在这个管理接口中,有其他一些JS文件能够帮助我理解管理员是如何实行操作的。
一些管理操作须要一个有效的令牌。
我试着利用从一个JS文件中透露的令牌实行干系管理操作,然并卵。
要求还是被重定向到了登录页面。
我创造其余一个真实存在的路径中也支配了一些内容,那便是/dashboard/controllers/.php。

再一次祭出BurpSuite,利用Intruder检讨一下是否存在可以从此处访问的其他任何路径。
第二次Intruder的结果是,我创造险些不存在其他无需授权即可访问的路径。
这是基于做事器返回的500或者200相应得出的结论。

回到我在上一步侦察中理解到的网站构造中,我创造这些路径是在/controllers中定义的,通过/dashboard/here/进行访问。
但是直接访问这些路径会跳转到登录页面,彷佛网站对Session检讨得还挺严格。
此时我又累又困,险些都打算放弃了,但是我想末了再试一把。
如果我利用与访问管理页面相同的方法去实行这些管理操作会怎么样呢?很有趣,高潮来了:) 我能够做到这一点。

通过访问/dashboard/photography/loginx,要求跳转到了Admin Photography页面,并且拥有完全的权限!

从这里开始,我能够实行和访问/dashboard/路径下的所有操作和目录,这些地方充满了诸如SQL注入、XSS、文件上传、公开重定向等漏洞。
但是,我没有连续深入测试,由于这些都不在赏金操持之内,根据操持哀求,一旦打破管理授权限定,应立即报告问题。
此外,根据管理页面显示的调试缺点信息可知,我之以是能够访问到管理页面,是由于运用程序在/dashboard/controllers/文件中存在缺点配置。
期望达到的效果是:只要要求链接中涌现login,就重定向至主登录页面,然而,实际情形并不如人所愿。

后记

总之,这是有趣的一天!
我拿到了这个漏洞赏金操持最大金额的褒奖。