Burpsuit结合SQLMapAPI产生的批量注入插件(X10)
1.1变动:
增加过滤设置
优化显示结果
增加运行提示信息
增加域名正则匹配
整个插件分为三个面板:任务面板、sqlmapapi参数配置面板、过滤条件面板。
任务面板
Server : SQLmapapi服务的IP和端口
THREAD:同时检测的任务数量
Domain:需要检测的域名,支持正则匹配
CLEAN:清除任务缓存列表
TEST:测试SQLmapapi的连接是否成功
START:开启检测
左下为任务列表和任务状态,右侧按钮下方是信息提示区域,下方为请求详情和扫描结果。
sqlmapapi参数配置面板
这里的设置参考sqlmap的参数设置。
Tamper:列表中的是sqlmap自带的tamper,输入框中可填入自定义的tamper使用 ”,“逗号分割 。
LogFile:设置扫描日志记录文件,该文文件存储路径为sqlmapapi服务器上的路径。
过滤条件面板
ExcludeSuffix:用来排除一些指定后缀的请求,使用正则进行匹配。例如:图片、css、js等。
IngoreCase:对ExcludeSuffix进行限制是否区分大小写,默认为不区分。
IngoreParams:在对请求进行重复性检测时需要忽略的参数,使用”,“逗号分割,例如:请求中的随机数timeStamp等。
ExcludeParams:在对请求进行过滤时如果存在该参数则不将该请求加入待测列表,例如:验证码checkCode等。
以上是根据这段时间在实际使用的过程中所做的一些修改,后续还会根据大家的建议进一步对该插件进行优化,谢谢大家的支持。
———————————————————————我是一个分割线————————————————–
以下是程序中的一些代码以及实现思路:
请求监听段实现代码
public void processHttpMessage(int toolFlag, boolean messageIsRequest, IHttpRequestResponse messageInfo) {
boolean addFlag = false;// 是否添加到扫描列表
// 判断是否为request请求、开关是否打开
if (messageIsRequest && sqlmapApiPanel.isStart()) {
String host = helpers.analyzeRequest(messageInfo).getUrl().getHost();
if (host.matches(targetDomian)) {
IRequestInfo iRequestInfo = helpers.analyzeRequest(messageInfo);
// 从?号处截断URL 可区分http 和 https
String url = String.valueOf(iRequestInfo.getUrl());
url = url.indexOf("?") > 0 ? url.substring(0, url.indexOf("?")) : url;
// 排除指定后缀URL(eg : .jpg|.png|.ico)
if (!excludeSuffix.matcher(url).matches()) {
// 构造任务实体
TaskEntity entity = new TaskEntity(iRequestInfo.getUrl(), //
iRequestInfo.getMethod(), //
callbacks.saveBuffersToTempFiles(messageInfo), //
iRequestInfo);
// 进行数据去重检测
String hash = bCrypt.hashpw(entity.getSignString(-1, ingoreParams), SALT);
Integer repeatCheckValue = 1;
1.1变动:
增加过滤设置
优化显示结果
增加运行提示信息
增加域名正则匹配
整个插件分为三个面板:任务面板、sqlmapapi参数配置面板、过滤条件面板。
任务面板
Server : SQLmapapi服务的IP和端口
THREAD:同时检测的任务数量
Domain:需要检测的域名,支持正则匹配
CLEAN:清除任务缓存列表
TEST:测试SQLmapapi的连接是否成功
START:开启检测
左下为任务列表和任务状态,右侧按钮下方是信息提示区域,下方为请求详情和扫描结果。
sqlmapapi参数配置面板
这里的设置参考sqlmap的参数设置。
Tamper:列表中的是sqlmap自带的tamper,输入框中可填入自定义的tamper使用 ”,“逗号分割 。 内容来自无奈安全网
LogFile:设置扫描日志记录文件,该文文件存储路径为sqlmapapi服务器上的路径。
过滤条件面板
ExcludeSuffix:用来排除一些指定后缀的请求,使用正则进行匹配。例如:图片、css、js等。
IngoreCase:对ExcludeSuffix进行限制是否区分大小写,默认为不区分。
IngoreParams:在对请求进行重复性检测时需要忽略的参数,使用”,“逗号分割,例如:请求中的随机数timeStamp等。
ExcludeParams:在对请求进行过滤时如果存在该参数则不将该请求加入待测列表,例如:验证码checkCode等。
以上是根据这段时间在实际使用的过程中所做的一些修改,后续还会根据大家的建议进一步对该插件进行优化,谢谢大家的支持。
———————————————————————我是一个分割线————————————————– 本文来自无奈人生安全网
以下是程序中的一些代码以及实现思路:
请求监听段实现代码
public void processHttpMessage(int toolFlag, boolean messageIsRequest, IHttpRequestResponse messageInfo) {
boolean addFlag = false;// 是否添加到扫描列表
// 判断是否为request请求、开关是否打开
if (messageIsRequest && sqlmapApiPanel.isStart()) {
String host = helpers.analyzeRequest(messageInfo).getUrl().getHost();
if (host.matches(targetDomian)) {
IRequestInfo iRequestInfo = helpers.analyzeRequest(messageInfo);
// 从?号处截断URL 可区分http 和 https
String url = String.valueOf(iRequestInfo.getUrl()); 内容来自无奈安全网
url = url.indexOf("?") > 0 ? url.substring(0, url.indexOf("?")) : url;
// 排除指定后缀URL(eg : .jpg|.png|.ico)
if (!excludeSuffix.matcher(url).matches()) {
// 构造任务实体
TaskEntity entity = new TaskEntity(iRequestInfo.getUrl(), //
iRequestInfo.getMethod(), //
callbacks.saveBuffersToTempFiles(messageInfo), // copyright 无奈人生
iRequestInfo);
// 进行数据去重检测
String hash = bCrypt.hashpw(entity.getSignString(-1, ingoreParams), SALT);
Integer repeatCheckValue = 1;
本文来自无奈人生安全网