您可以使用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)
您可能还对我们的示例扩展感兴趣。此外,所有 BApp Store 扩展都是开源的。