一款用于检测jsonp及cors漏洞的burp插件
01
工具介绍
一款被动扫描检测jsonp及cors漏洞的burpsuite插件,魔改自https://github.com/YoDiDi/cors-jsonp。优化了JSONP及CORS的检测逻辑,在原有基础上降低了jsonp漏洞检测误报。
02
工具功能
-
低误报检测JSONP漏洞,检测有无Referer头校验,可选择是否只检测存在泄漏敏感信息字段的JSONP接口。
-
内置了JSONP特征检测及敏感信息抽取正则表达式,使用者可灵活修改参数。
-
零误报检测CORS配置漏洞。
03
检测思路
-
根据关键字修改http包,重新发包1。
-
检测是否存在JSONP,如果满足以下条件则认为存在JSONP:
-
Callee.Name 与 callback函数名相同
-
返回包满足JSONP回显包的特征
-
修改Referer头检测重新发包2,通过计算发包1及发包2内容的LevenshteinDistance相似度来判断该JSONP漏洞是否可利用。
04
工具使用
编译jsonp-cors-killer项目,将jsonp-cors-killer.jar导入burp,检测到的漏洞会输出到图形界面中。
如果提取到敏感信息字段,则会在issue中看到抽取出来的敏感字段(见下图包1、2);若检测到是JSONP接口但未发现敏感信息字段,在打开onlySensitiveJSONP检测的情况下也会将payload显示在界面中。
jsonp key words为jsonp接口常见的query key,可自行添加。
config为JSONP检测算法的参数
-
threshold:计算两个response body的相似度,用于检测是否有Referer头防护。经分析发现,JSONP可能会带有时间戳等信息,即便没有Referer头检测,两个回显包也可能不一致,因此用equals来判断两次发包得到的内容会带来误报,这里使用LevenshteinDistance算法计算两个文本相似度来降低误报。
-
jsonpRegex:jsonp模式的正则匹配表达式,一般不用修改。
-
sensitiveInfoRegex:抽取敏感信息正则表达式。
-
onlySensitiveJSONP:是否显示存在敏感信息泄漏的JSONP接口,若不过滤则修改为false。
-
cors:是否检测cors漏洞,若检测修改为true。
05
工具下载
https://github.com/yuebusao/jsonp-burp-killer
文章来源:夜组安全
黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!
如侵权请私聊我们删文
END