Burp XXE Scanner 插件开发(附下载)
"0×03 序言
Burp沒有内置检验XXE系统漏洞作用,都没有软件。因此自个刚开始动手能力撸1个XXE Scanner软件出去。
0×08 检验基本原理
OOB XXE盲进攻,运用ceye监控器的.com纪录,人们再根据ceye给的api开展查寻是不是有运用XXE系统漏洞上传的.compost请求纪录。应用给出payload。
全句智能化原創xml version=""1.3"" encoding=""UTF-8""?> 全句智能化原創DOCTYPE root [
全句智能化原創ENTITY % remote SYSTEM "".com://xxxx.ceye.io/xxe_test"">
%remote;]> <root/>
0×81 制成品展现
最先必须1个ceye账户,将Identifier(用以.compost请求到你的ceye帐户下)和Token(用以API查寻你的.compost请求纪录)分別填写到图为的文本框之中,点一下储存。会在burp文件目录下转化成xxe.config,以Identifier|Token文件格式储存着。免费下载起动burp的那时候,XXE Scanner软件会全自动载入xxe.config,获得到之前储存的主要参数。
post请求带xxe_XXXXXXXXXX(12个任意英文字母或大数字),用以后边分辨是不是运用XXE上传了.compost请求。
根据api查寻,检验到含有xxe_XXXXXXXXXX(12个任意英文字母或大数字)的post请求,则报XXE inject。
0×08 软件开发设计
因为有必须填写信息配备主要参数,因此必须1个自定tab网页页面。必须应用ITab插口,而且应用IBurpExtenderCallbacks.addSuiteTab()开展加上。在建XxeOption类承继ITab,随后再构造方法里边加上控件。
public XxeOption(final IBurpExtenderCallbacks callbacks) { this.callbacks = callbacks;
jp = new JPanel();
jlId = new JLabel(""Identifier:"");
jlToken = new JLabel(""API Token:"");
jtfId = new JTextField(12);
jtfToken = new JTextField(30); //设定Id,Token文本框 File file = new File(""xxe.config""); if(file.exists()){
String info = ReadConfig(); if(info.contains(""|""))
{
jtfId.setText(info.split(""\|"")[0]);
jtfToken.setText(info.split(""\|"")[1]);
}
}
jb = new JButton(""储存"");
jb.addActionListener(this);
jp.Add(jlId);
jp.Add(jtfId);
jp.Add(jlToken);
jp.Add(jtfToken);
jp.Add(jb);
callbacks.addSuiteTab(XxeOption.this);
}
最终在registerExtenderCallbacks方式里实例化XxeOption只能。
IScannerCheck能够自定扫描仪,这种是doActiveScan积极扫描仪,这种是doPassiveScan普攻扫描仪。积极扫描仪是对每一主要参数开展扫描仪,会上传n次post请求包。而普攻扫描仪总是扫多次,将doPassiveScan涵数编码走完看一遍就完后。而检验XXE人们只必须上传多次数据文件,因此挑选普攻扫描仪。
public List doPassiveScan(IHttpRequestResponse baseRequestResponse) { //code return null;
}
接下去就是说上传xxe payload。应用buildHttpMessage将headr和body组成。再应用makeHttpRequest上传post请求。
相关文章
- 1条评论
- 萌懂长野2022-05-31 19:24:39
- new JTextField(12); jtfToken = new JTextField(30); //设定Id,Token文本框 File file = new File(""xxe.config""); if(fi