前言:
今天分享的这个漏洞是在某项目中挖到的,当时这个漏洞点很多师傅也发现了,也在弄,只是我误打误撞先一步把数据包构造出来拿到了数据,最后拿到了赏金。所以感觉这洞的数据包构造还是有点意思的,以前也没碰到过,分享一下希望能让师傅们有些收获。
正文:
在实际挖掘当中,可以着重关注两类重要的js文件,一是配置文件,比如config/index.js,该文件可以获取一些服务器接口地址或一些配置信息;二是查看app.xxx.js文件,app.xxx.js文件是系统主文件,这类文件往往可以获取大量API接口。如下这个案例就是app.xxx.js泄露了大量的api,导致了未授权访问漏洞,细节如下:
1.打开某网站,直接F12大法走一波,发现有如下3个js文件:
2.看到app.xxx.js,直接拼接到网站地址后面,发现存在大量API接口:
3.选择其中一个api进行构造,比如:
https://xxx.xxx.xxx.xxx/api/classroom/listBySchoolCode?schoolCode=11111,然后进行访问。网页回显如下,显示缺失T信息:
4.什么是T信息?懵逼,完全不知道是啥玩意,去群里问了一圈大表哥们,表示都不知道。那怎么办呀,谷歌百度都翻遍了,还是不知道是啥。就在快放弃的时候,发现网站的登录包中有这么一个字段:
5.灵光一现,难道缺少T信息就是因为数据包中缺少这个字段?打开谷歌的插件HackBar,进行如下构造:
6.构造完毕后直接提交,Bingo!从下图中看到,在请求体中增加了Lc-Terminal字段后,回显就成功了,不再是显示缺少T信息,由此说明猜测是正确的(挖洞总是这么神奇,总是在快放弃的时候来点鸡血让你继续):
7.那么接下来只要搞定schoolCode参数,就可以获取到数据了。这类参数一般可以有两个思路去获取:一是掏出百万大字典,直接跑;二是在网站的其他功能点,点点点,然后抓包,查看数据包中是否会有这个参数出现。
我这里就是直接在其他数据包中找到的,所以拼接上去,数据就出来了,如下(此处非敏感信息,只是为了让师傅们看的清楚,举例所用):
总结:
在以往挖掘js未授权的过程中,在获取到api接口后,更多都是直接拼接进行访问。但是比如这次这个漏洞,直接访问是会缺少一些参数的,而且缺少的参数也没有回显,不知道缺什么,最后导致的结果就是数据包构造不出来,获取不到数据,一个高危洞可能就只能当个低危交了。所以有的时候还是需要多翻翻,说不准惊喜就在下一个数据包中。
分享就到这里了,希望师傅们能顺手点个赞,也不枉这么费劲的码字了,么么哒~