简介
jsonp
及cors
漏洞的burp
插件,魔改自https://github.com/YoDiDi/cors-jsonp
。优化了JSONP
及CORS
的检测逻辑,在原有基础上降低了jsonp
漏洞检测误报。
功能
- 低误报检测
JSONP
漏洞,检测有无Referer
头校验。 - 针对
jsonp
漏洞检测内置了一些参数关键字,使用者可自行添加参数。 - 内置文本相似度计算阈值(默认0.9),用于判断该
JSONP
接口是否存在Referer
头校验 - 零误报检测
CORS
配置漏洞。
JSONP检测思路
-
解析
url
路径,检查query
中的key
是否包含预先定义好的关键字。 -
根据关键字修改
http
包,重新发包1。 -
检测是否存在
JSONP
,如果满足以下条件则认为存在JSONP
:Callee.Name
与callback
函数名相同- 返回包满足
JSONP
回显包的特征
-
修改
Referer
头检测重新发包2,通过计算发包1及发包2内容的相似度来判断该JSONP
漏洞是否可利用。
使用说明
编译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
。
项目地址
原文始发于微信公众号(HACK之道):一款用于检测jsonp及cors漏洞的burp插件
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论