一款用于检测jsonp及cors漏洞的burp插件

admin 2024年7月11日14:18:45评论7 views字数 1065阅读3分33秒阅读模式

简介

一款被动扫描检测jsonpcors漏洞的burp插件,魔改自https://github.com/YoDiDi/cors-jsonp。优化了JSONPCORS的检测逻辑,在原有基础上降低了jsonp漏洞检测误报。

功能

  • 低误报检测JSONP漏洞,检测有无Referer头校验。
  • 针对jsonp漏洞检测内置了一些参数关键字,使用者可自行添加参数。
  • 内置文本相似度计算阈值(默认0.9),用于判断该JSONP接口是否存在Referer头校验
  • 零误报检测CORS配置漏洞。

JSONP检测思路

  1. 解析url路径,检查query中的key是否包含预先定义好的关键字。

  2. 根据关键字修改http包,重新发包1。

  3. 检测是否存在JSONP,如果满足以下条件则认为存在JSONP

    • Callee.Name 与 callback函数名相同
    • 返回包满足JSONP回显包的特征
  4. 修改Referer头检测重新发包2,通过计算发包1及发包2内容的相似度来判断该JSONP漏洞是否可利用。

使用说明

编译jsonp-cors-killer项目,将jsonp-cors-killer.jar导入burp,检测到的漏洞会输出到图形界面中。

如果提取到敏感信息字段,则会在issue中看到抽取出来的敏感字段(见下图包1、2);若检测到是JSONP接口但未发现敏感信息字段,在打开onlySensitiveJSONP检测的情况下也会将payload显示在界面中。

一款用于检测jsonp及cors漏洞的burp插件

jsonp key wordsjsonp接口常见的query key,可自行添加。

一款用于检测jsonp及cors漏洞的burp插件

configJSONP检测算法的参数

一款用于检测jsonp及cors漏洞的burp插件

  1. threshold:计算两个response body的相似度,用于检测是否有Referer头防护。经分析发现,JSONP可能会带有时间戳等信息,即便没有Referer头检测,两个回显包也可能不一致,因此用equals来判断两次发包得到的内容会带来误报,这里使用LevenshteinDistance算法计算两个文本相似度来降低误报。
  2. jsonpRegexjsonp模式的正则匹配表达式,一般不用修改。
  3. sensitiveInfoRegex:抽取敏感信息正则表达式。
  4. onlySensitiveJSONP:是否显示存在敏感信息泄漏的JSONP接口,若不过滤则修改为false
  5. cors:是否检测cors漏洞,若检测修改为true

项目地址

https://github.com/yuebusao/jsonp-burp-killer

 

 

原文始发于微信公众号(HACK之道):一款用于检测jsonp及cors漏洞的burp插件

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月11日14:18:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一款用于检测jsonp及cors漏洞的burp插件https://cn-sec.com/archives/2942008.html

发表评论

匿名网友 填写信息