我目前正在使用python / jython开发一个burp扩展。
我希望的结果是能够与打嗝的每个部分(更具体地说是入侵者)进行交互,并在burp所做的每一个请求中替换一个标头,无论打嗝的哪个部分发出请求。
让我们争论说我想要修改的请求标题是" Accept-Language"我希望将其值从de更改为en。
我如何做到这一点,重点放在"每一个请求"或者如果那太多,只与“入侵者”进行互动"请求将是一个很好的开始。
注意:我不想创建入侵者有效负载,我需要根据请求更改标头。
答案 0 :(得分:3)
您可以使用IHttpListener界面执行此操作。注册侦听器时,将为每个请求和响应调用 processHttpMessage 方法。在此方法中,您可以使用 analyseRequest 来提取标头。进行所需的更改,然后使用 buildHttpMessage 和 setRequest 。
这是一些尝试的代码。
from burp import IBurpExtender, IHttpListener
class BurpExtender(IBurpExtender, IHttpListener):
def registerExtenderCallbacks(self, callbacks):
self.helpers = callbacks.getHelpers()
callbacks.registerHttpListener(self)
def processHttpMessage(self, toolFlag, messageIsRequest, message):
if not messageIsRequest:
return
request = message.getRequest()
requestInfo = self.helpers.analyzeRequest(request)
headers = requestInfo.getHeaders()
for i in range(len(headers)):
if headers[i].startswith('Accept-Language: de'):
headers[i] = 'Accept-Language: en'
body = request[requestInfo.getBodyOffset():]
updatedRequest = self.helpers.buildHttpMessage(headers, body)
message.setRequest(updatedRequest)
您可能也对sample extensions感兴趣。此外,所有BApp商店扩展都是开源的。