本工具主要实现功能是使用Burpsuite测试的时候,想把测试的数据给保存到数据库中去,那么我们怎么操作呢?可以使用如下操作:
设计好数据库:
DROP TABLE IF EXISTS `url`;CREATE TABLE `url` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `project_id` int(11) unsigned NOT NULL, `hash_url` varchar(255) DEFAULT NULL, `host` varchar(255) DEFAULT NULL, `method` varchar(100) DEFAULT NULL, `url` varchar(512) DEFAULT NULL, `params` varchar(255) DEFAULT NULL, `status` int(11) DEFAULT NULL, `length` int(11) DEFAULT NULL, `mime` varchar(255) DEFAULT NULL, `extension` varchar(255) DEFAULT NULL, `created_time` datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), FOREIGN KEY (`project_id`) REFERENCES project(id)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
BurpSuite 插件开发:
这里插件的接口开发和规范,这里我就不详细的说明了,我这里可以提供下当初学习的资料入口,大家按照这个来学习,完全够了,我就不多此一举了。
1 [BurpSuite插件开发指南之 API 上篇 – Her0in](http://www.vuln.cn/6098)
2 [BurpSuite插件开发指南之 API 下篇 – Her0in](http://www.vuln.cn/6099)
3 [BurpSuite插件开发指南之 Java 篇 – Her0in](http://www.vuln.cn/6100)
4 [官网](https://portswigger.net/burp/extender)
个人是先重点学习java篇的,因为burpsuite原生是用java开发的,所以提供的接口都是java,个人建议把每个接口的作用与存在的方法属性搞清楚,后面不管用python还是java,都可以得心应手。官网的样例代码真的很给力,大家可以没事多看看和模仿。
附上源码:
#!/usr/bin/python# -*- coding: utf-8 -*-import pymysqlimport timeimport redisfrom hashlib import md5from urlparse import urlparsefrom threading import Lockfrom burp import IBurpExtender, ITabfrom burp import IHttpListenerfrom java.io import PrintWriterfrom java.util import ArrayListfrom javax.swing import BorderFactoryfrom javax.swing import BoxLayoutfrom javax.swing import JTextFieldfrom javax.swing import JButtonfrom java.awt.event import ActionListenerfrom javax.swing import JPanelfrom javax.swing import JTabbedPaneclass connectMysql(ActionListener): def __init__(self, extender): self._extender = extender # 连接Mysql数据库 def actionPerformed(self, e): button = self._extender.connect_button if button.getText() == "Connect": self._extender._mysql = pymysql.connect(host='127.0.0.1', port=3306, user='dbuser', password='o123', database='webmonitor', charset='utf8') button.setText("Disconnect ") else: button.setText("Connect")