BurpSuite插件编写

admin 2025年4月14日10:38:57评论8 views字数 2724阅读9分4秒阅读模式
BurpSuite插件编写

本文主要针对BurpSuite常见编写进行介绍,通过针对个人测试需求或者一些定制化的测试,使用自行编写的BurpSuite插件可以使得测试事半功倍。

burpsuite Resutful API

第一部分主要学习Burp API配置是怎么实现的、它的主动和被动扫描、自定义扫描规则以及API怎么调用,怎么使用的。

1.burpsuiteHTTP API配置

打开我们的burp在用户选项中,找到REST API并开启服务器,默认端口是1337,去访问的话就可以访问到HTTP 接口信息。

BurpSuite插件编写

三个接口第一个是漏洞介绍的接口,漏洞id,漏洞name等等;第二接口也是最常用的扫描接口;第三个接口则是通过id去查它的一个扫描状态。

BurpSuite插件编写

BurpSuite插件编写

2.burpsuite 主动和被动扫描

BurpSuite插件编写

新建主动扫描

BurpSuite插件编写

BurpSuite插件编写

可以新建策略,也可以从库中选择。在新建的策略中注意的一个问题就是扫描类型的选择,默认的话它是全选,我们可以根据自己的需求选择类型,最后保存后就会在扫描设置中出现,也会在库中增加了这个配置,以后扫描就可以直接进行选择了。

BurpSuite插件编写

BurpSuite插件编写

对于资源池中可进行并发的大小修改,默认是10个并发,建议10个并发就可以了,给的太大扫描就会卡住。

被动扫描

    将重复排除选项选择后,可以减少它扫描重复的URL和参数等,就可以加快扫描进度。

BurpSuite插件编写

3.burpsuite 自定义扫描规则

在插入点的选项中,默认是全选。但是在POC编写要搞清楚漏洞的插入点,然后根据插入点选择插入点类型再去扫,这样就大大降低了它的发包率。

BurpSuite插件编写

PHPSESSIDsession_id等都是会话标识,没有必要进行一个插入,它们几乎是不可能有漏洞的。

BurpSuite插件编写

经常插入点就是当访问一个网站不同功能时,它的数据包中cookie信息都是一样的,那么就会直接跳过扫描下一个插入点了。

BurpSuite插件编写

XSS插件编写

官方扩展器API demohttps://portswigger.net/burp/documentation/desktop/extensions/creating/extender-api-examples-legacy

在我们测试验证的时候都是一个一个插入xss语句,为了方便让它自动插入,因此尝试编写XSS脚本

XSS-payload"<Svg/Onload=confirm(document.domain)>","<<img src=xonerror='prompt(1)'><","<input onfocus=javascript:alert(1)autofocus>","<input value="test"onfocus=alert(0)>","<ahref="javascript&colon;alert&lpar;document&period;domain&rpar;">ClickHere</a>","<script>alert(xss)</script>"classBurpExtender(IBurpExtenderIScannerCheck):    #    # implementIBurpExtender    ## registerExtenderCallbacks注册插件    defregisterExtenderCallbacks(self, callbacks):       # keep areference to our callbacks object  保留对我们的回调对象的引用       self._callbacks= callbacks       # obtainan extension helpers object  获取扩展助手对象 用来分析数据包 转换字节码等       self._helpers= callbacks.getHelpers()       # set ourextension name    设置插件名称 callbacks回调类对象设置成全局       callbacks.setExtensionName("Customscanner XSS")       # obtainour output and error streams 打印输出流       stdout =PrintWriter(callbacks.getStdout(), True)       self.stdout= stdout       # registerourselves as a custom scanner check  注册自定义扫描检查       callbacks.registerScannerCheck(self)    defdoActiveScan(self, baseRequestResponse, insertionPoint):       # make arequest containing our injection test in the insertion point       forpayload in payload_list:           # 记录开始时间           scan_time= str(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))           # 把请求结构的响应分析一下,取出它的URL,这个URL就是扫描的URL地址           scan_url= str(self._helpers.analyzeRequest(baseRequestResponse).getUrl())           #payload(从列表拿出来的每一个语句)转换成字符串           scan_payload= str(payload)           # 插入点 把scan_payload转换成字节码数组,重新构造请求这个请求           checkRequest= insertionPoint.buildRequest(bytearray(scan_payload))           # 打印时间 url payload           self.stdout.println(scan_time" ------ url:" + scan_url + "Payload:" + scan_payload)           # 重新发请求,基于baseRequestResponse结构体获取它http符 和构造的checkRequest请求           checkRequestResponseself._callbacks.makeHttpRequest(baseRequestResponse.getHttpService(),checkRequest)       # reportthe issue       return
END
BurpSuite插件编写
白帽少年
微信号:Alan

原文始发于微信公众号(白帽少年):BurpSuite插件编写

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月14日10:38:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   BurpSuite插件编写https://cn-sec.com/archives/3950234.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息