Burp XXE Scanner 插件开发(附下载)
0x00 前言
Burp没有自带检测XXE漏洞功能,也没有插件。于是自己开始动手撸一个XXE Scanner插件出来。
0x01 检测原理
OOB XXE盲攻击,利用ceye监控的http记录,我们再通过ceye给的api进行查询是否有利用XXE漏洞发送的http请求记录。使用如下payload。
0x02 成品展示
首先需要一个ceye账号,将Identifier(用于http请求到你的ceye账户下)
和Token(用于API查询你的http请求记录)
分别填入到下图的文本框当中,点击保存。会在burp目录下生成xxe.config,以Identifier|Token
格式保存着。下载启动burp的时候,XXE Scanner插件会自动读取xxe.config,获取到上次保存的参数。
请求带xxe_XXXXXXXXXX(10个随机字母或数字)
,用于后面判断是否利用XXE发送了http请求。
通过api查询,检测到带有xxe_XXXXXXXXXX(10个随机字母或数字)
的请求,则报XXE inject。
0x03 插件开发
由于有需要填写配置参数,所以需要一个自定义tab页面。需要使用ITab
接口,并且使用IBurpExtenderCallbacks.addSuiteTab()
进行添加。新建XxeOption
类继承ITab
,然后再构造方法里面添加控件。
最后在registerExtenderCallbacks
方法里实例化XxeOption
即可。
IScannerCheck
可以自定义扫描,一种是doActiveScan
主动扫描,一种是doPassiveScan
被动扫描。主动扫描是对每个参数进行扫描,会发送n次请求包。而被动扫描只会扫一次,将doPassiveScan
函数代码走完一遍就完了。而检测XXE我们只需要发送一次数据包,所以选择被动扫描。
接下来就是发送xxe payload。使用buildHttpMessage
将headr和body组合。再使用makeHttpRequest
发送请求。
使用makeHttpRequest
进行api接口查询。
对返回结果进行匹配。
0x04 参考
https://portswigger.net/burp/extender/api/
点击原文查看下载地址
* 本文作者lufei,转载注明来自FreeBuf.COM
- HDUOJ------Lovekey
- 转-带交互的telnet小工具,golang版
- 需要了解的pssh(r11笔记第28天)
- 二分查找算法基本思想
- Flyod 算法(两两之间的最短路径)
- HDUOJ-4104 Discount
- HDUOJ-----1085Holding Bin-Laden Captive!
- HDUOJ-----1098 Ignatius's puzzle
- 转--shell脚本备份mysql数据库
- NYOJ——————数的长度(斯特林公式的应用)
- 关于ssh命令的几个使用小技巧(r11笔记第27天)
- Golang语言社区--消息触发服务器启动基础模块分享
- NYOJ------汉诺塔(一)
- HDUOJ----Coin Change
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Angular In-memory Web API使用介绍
- 攻防世界-php_rce
- 无法添加某个relationship给SAP CRM Product category的一个可能原因
- 记一次DataGuard SWITCHOVER_STATUS 状态为RESOLVABLE GAP的处理
- ABAP数据库表的元数据
- ctfshow-萌新赛
- VC++ libcurl FTP上传客户端程序
- Oracle RAC变更实验之修改11gR2+公网IP地址(网段不变)
- C# 纯控制台创建一个全屏窗口
- MySQL MHA部署添加Linux/Unix基本信息至Django中
- 记一次innobackupex导致的从库无法同步的问题
- mysqlbinlog命令详解记一次有函数的标量子查询导致的查询缓慢
- ctfshow红包题-web
- 微信支付一面(C++后台)
- 强网杯-随便注