burp扩展如何拦截所有流量
burp extension how to intercept all traffic
我目前正在使用 python/jython 开发 burp 扩展。
我想要的结果是能够与 burp 的每个部分(更具体地说是入侵者)进行交互,并在 burp 发出的每个请求上替换 header,而不管 burp 的哪个部分发出请求。
为了论证,让我们假设我希望修改的请求 header 是 "Accept-Language",我希望将其值从 de 更改为 en。
我将如何强调 "every single request" 或者如果这太多了,只与 "intruder" 请求交互将是一个很好的开始。
注意:我不想创建入侵者负载,我需要根据请求更改 headers。
您可以使用 IHttpListener 界面执行此操作。注册侦听器后,将为每个请求和响应调用 processHttpMessage 方法。在此方法中,您可以使用 analyseRequest 来提取 headers。进行所需的更改,然后使用 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 Store 扩展都是 open-source.
我目前正在使用 python/jython 开发 burp 扩展。
我想要的结果是能够与 burp 的每个部分(更具体地说是入侵者)进行交互,并在 burp 发出的每个请求上替换 header,而不管 burp 的哪个部分发出请求。
为了论证,让我们假设我希望修改的请求 header 是 "Accept-Language",我希望将其值从 de 更改为 en。
我将如何强调 "every single request" 或者如果这太多了,只与 "intruder" 请求交互将是一个很好的开始。
注意:我不想创建入侵者负载,我需要根据请求更改 headers。
您可以使用 IHttpListener 界面执行此操作。注册侦听器后,将为每个请求和响应调用 processHttpMessage 方法。在此方法中,您可以使用 analyseRequest 来提取 headers。进行所需的更改,然后使用 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 Store 扩展都是 open-source.