前言:上一篇文章(Python实战编写Burp “sql注入”插件(一))我们实现了在每一个参数后面添加单引号,这节课我们会在每个参数后面插入大量sql注入检测参数,并且通过接口类获取发送的请求数据和接收响应数据,然后根据响应数据判断sql注入漏洞是否存在。

 

所需要的接口类

Python实战编写Burp “sql注入”插件(二)

IIntruderPayloadProcessor:

这是一个Intruder工具的payload处理器,我们可以通过IBurpExtenderCallbacks.registerIntruderPayloadProcessor() 注册一个。此类里面有两个函数需要实现getProcessorName()和processPayload()

Python实战编写Burp “sql注入”插件(二)

getProcessorName方法:

用于获取payload处理器的名称

processPayload方法:

当处理器每次应用 payload 到一次 Intruder 攻击时,Burp 都会调用一次此方法Python实战编写Burp “sql注入”插件(二)

IHttpListener:

这是一个http监听器,burp里的任何一个工具发起的http请求或收到http响应都会通知此监听器,通过IBurpExtenderCallbacks.registerIntruderPayloadProcessor() 注册,我们可以通过这个类得到交互数据,进行分析和修改。此类里面有一个processHttpMessage()需要实现。

Python实战编写Burp “sql注入”插件(二)

processHttpMessage方法:

需要获取所有的http数据包,必须通过上述接口,重写此方法。

Python实战编写Burp “sql注入”插件(二)

 

(其他的api类在这不做介绍,可参考前几篇文章)

 

代码实现和解读:

第一步:

导入我们的burpapi类

Python实战编写Burp “sql注入”插件(二)

第二步:

将需要用到的sql注入语句写入数组

Python实战编写Burp “sql注入”插件(二)

这里只做演示,这个地址上有大量测试语句:

https://github.com/trietptm/SQL-Injection-Payloads

 

第三步:

注册所有需要注册的接口类

Python实战编写Burp “sql注入”插件(二)

第四步:

已经注册了payload生成器,现在完成我们payload生成器,

返回此接口的一个新实例。

Python实战编写Burp “sql注入”插件(二)

第五步:

定于intruder工具的payload生成器。

Python实战编写Burp “sql注入”插件(二)

第六步:

处理从payload生成器中返回的payload

Python实战编写Burp “sql注入”插件(二)

第七步:

先前已经注册好http监听器,现在使用http监听器获取http请求和响应数据,可以分析和修改交互数据。

Python实战编写Burp “sql注入”插件(二)

messageInfo是一个类,我们通过类方法获取和修改相关数据:

Python实战编写Burp “sql注入”插件(二)

上图可以看见getHttpService()会返回一个IHttpService实例子

Python实战编写Burp “sql注入”插件(二)

 

通过调用里面的方法可以获取到详细的http信息细节。

我的pycharm用的是python3的环境变量,目前jython只支持python2,所有我们必须使用python2的语法进行打印,将结果输出在burp终端。

 

最后贴一张完整代码:

Python实战编写Burp “sql注入”插件(二)

Python实战编写Burp “sql注入”插件(二)

 

注:使用的时候如下配置

Python实战编写Burp “sql注入”插件(二)

最终效果:

Python实战编写Burp “sql注入”插件(二)

相关文章:

  • 2022-12-23
  • 2021-12-03
  • 2021-06-04
  • 2022-12-23
  • 2021-06-29
  • 2022-01-13
  • 2022-02-09
  • 2022-12-23
猜你喜欢
  • 2021-08-27
  • 2021-09-24
  • 2021-10-02
  • 2021-07-29
  • 2022-12-23
相关资源
相似解决方案