黑盒通杀一般是一个耗时的过程,相比白盒他并不是透明的状态,我的黑盒渗透思路是要学会如何从外围打点,抓住一切可以利用的漏洞点,再尝试进一步利用扩大危害,去年12月份也是凭借这个小通杀上了近100rank哈哈哈,废话不多说,我们直接开始。
首先来到这个系统的登录页面,平平无奇(因为是专门开发学校系统的大厂商,自然这种登录界面没有sql注入、xss这类很常见的漏洞),简单测了一下也没啥框架漏洞,弱口令爆破五次以上直接给限制登录了,没办法只能翻翻js。
从js文件里面还真翻出东西来了,他这里请求的接口一级目录是"api/",二级根据不同的功能分成了"/baseinfo","/system","/scheme"等,基本上请求都是api/+二级接口目录,我想着/baseinfo应该有更多的敏感信息,于是尝试从这里开始作为攻入点。
接着用插件看了一眼框架,我去这不是Spring家族的吗,那一定先找到有没有什么druid未授权或者接口api文档泄露。
先尝试一下拼接常见的druid路径,也是运气好,直接出货了!可惜是个小货,druid未授权也就1rank,继续深入。
/api/baseInfo/druid/index.html
接着遍历爆破一下他api文档,是未授权查看的,很有精神!里面请求接口和字段都写的一清二楚了,那么进一步尝试可不可以利用,不能利用的话,edusrc是不收的。
/api/baseInfo/v2/api-docs
POST /api/baseInfo/public/userListQuery HTTP/1.1
Host: xxxx.edu.cn
Content-Type: application/json
Content-Length: 12
{"userId":1}
测出来了接口未授权,可惜他这个没什么敏感信息,交edu就看审核心情咯,他接口肯定不止一处未授权,我们回到api文档发现有个接口很有意思,我们继续深入。
我们可以根据获取到的userId进一步通过下面这个接口查询详细信息,个人身份证泄露!这里太敏感了....码死码死!
GET /api/baseInfo/basicInformationOfTutor/detail/{userId} HTTP/1.1
Host: xxx.edu.cn
如何进一步利用?可以通过以下接口获取所有教师id,再通过上面查询教师个人详细信息的接口,那么有多少个userId就有多少位教师身份敏感信息泄露。这里就有3000多条敏感信息了,那么又能上一波分了!
GET /api/baseInfo/public/onlineTeacher HTTP/1.1
Host: xxx.edu.cn
但是我心想既然获得了那么多教师的信息,我们能不能在登录处利用这些信息呢?深究一下这个漏洞的危害嘛。
重新返回到登录处。输入获取到的教师信息,因为这里仅仅需要知道身份证号即可重置密码,开发可能也想不到我从哪搞的身份证号吧哈哈哈,那么这里就可以重置3k个教师账户的密码了,又能上一波分了。
成功重置密码!使用重置后的密码登录进后台,后台数据太敏感了,有学生的身份证和成绩,老师的敏感信息.....任意用户密码重置又能上一波分了
综上所述,其实我们只是通过一个js文件的一小段代码加上撞运,就收获了druid未授权漏洞,再通过泄露的api文档取尝试用接口未授权查询敏感信息,再用得到的敏感信息去任意用户密码重置,这连锁反应式的深度挖掘漏洞都是那个js文件的一段小小的代码开始的,所以黑盒测试通过js文件找接口尤为重要!这个身份证敏感信息是看他数据量给分,有的学校光一个接口未授权就能干到高危6rank,这里三个漏洞打包给的高危7rank,美美上了100rank,舒服了老铁!