Skip to content

Instantly share code, notes, and snippets.

@pajswigger
Last active March 15, 2018 22:57
Show Gist options
  • Save pajswigger/b5e980be06f799e70f565601c3349167 to your computer and use it in GitHub Desktop.
Save pajswigger/b5e980be06f799e70f565601c3349167 to your computer and use it in GitHub Desktop.
from burp import IBurpExtender, IHttpListener
import json
class BurpExtender(IBurpExtender, IHttpListener):
def registerExtenderCallbacks(self, callbacks):
self.helpers = callbacks.getHelpers()
callbacks.registerHttpListener(self)
def processHttpMessage(self, toolFlag, messageIsRequest, message):
if messageIsRequest:
req_info = self.helpers.analyzeRequest(message)
headers = req_info.getHeaders()
if 'GET /rest/requests/detail' not in headers[0]:
return
headers[0] = headers[0].replace('?id=', '/')
message.setRequest(self.helpers.buildHttpMessage(headers, None))
else:
req_info = self.helpers.analyzeRequest(message)
headers = req_info.getHeaders()
if 'POST /rest/requests' not in headers[0]:
return
resp_info = self.helpers.analyzeResponse(message.getResponse())
headers = resp_info.getHeaders()
json_str = self.helpers.bytesToString(message.getResponse()[resp_info.getBodyOffset():])
json_data = json.loads(json_str)
headers[-1] = 'Content-type: text/html'
resp = '<form action="/rest/requests/detail" method="GET"><input type="hidden" name="id" value="%s"></form>\n\n' % json_data['ID']
message.setResponse(self.helpers.buildHttpMessage(headers, self.helpers.stringToBytes(resp)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment