记先前某次众测,经过资产梳理,发现所有站点全部都挂了WAF,作为一名不钓鱼的挖洞小白,我估计这次又要空军。
想要在挂了WAF的站点挖出高危,很难,因为这些站点,你但凡鼠标点快点,检测出了不正确动作都要给你禁IP,至于WAF绕过对于小白更是难搞。其实在众测,大部分漏洞都并非那些什么SQL注入RCE等等,而小白想要出高危,可能也只有寄托希望于未授权。
未授权接口怎么找:
有一种站点,在URL内含有#符号,这种站点的路径接口信息泄露较多,更容易出未授权。
但要注意一点,#后面的东西是不会走服务器的,所以这里如果在findsomething找到了很多东西,拼接的时候带不带#号呢?
这就要区分路由和接口了,如果看着像是路由,在这种原本就有#符号站点,就带上#符号。如果是接口,接口一般是用来进行数据交互的,所以需要走服务器,那就不能拼接#符号。
区分上述后就可以将拿到的东西以POST请求,GET请求都跑一遍,再看是否存在能用的接口,再根据接口返回情况看是否需要添加参数。
这里又是涉及一个很麻烦的点,那就是遇到接口能用,找到参数了,但参数的格式不知道,我这次讲的这个高危就遇到了这种情况,差点错过!
在将现有js里面的接口跑完后还需要注意找js里面的js里面的接口。
这里有两种常见情况:
大多webpack打包的站点会有js.map文件,那js.map文件怎么利用呢?
首先需要下载下来:
如上图,右键检查后,在网络处找.js文件,再点击它,在右方找到js文件的路径,并在结尾加上.map访问即可下载。
之后再由reverse-sourcemap工具还原js.map文件,再由vscode等工具打开,进行接口关键字搜查。
如图:
我们如果在数据包或者js文件看到这种格式内容,就可以考虑进一步利用。
首先将所有内容复制出来,再用notepad++打开:
如图进行替换成符合burp里面chunk文件的格式,再放到burp里面跑一遍,配合HAE插件可以提取更加全面的接口信息。
小白找的高危未授权接口:
我也是通过上述方法找到接口后放到burp里面跑,(跑的时候记得加参数),例如接口中有类似id=,url=,wid=等等最好自己加个参数上去。
但就是因为不知道参数类型,我险些错过这个高危漏洞。
如上图第一个接口,因为参数不正确跑出来跟其它接口一个样,不过还好我留意了一下,并且运气好,随手拼的参数居然正确了,直接下载了敏感文件,造成用户全家姓名,电话,住址,工作公司,身份证等等信息全部泄露。(所以这里注意:对有参数的接口即使一次没跑出信息,也要考虑是否需要对参数进行FUZZ)
并且id参数可遍历,形成大范围用户泄露,高危漏洞到手。