Skip to content

Instantly share code, notes, and snippets.

@mrtc0
Created September 17, 2017 04:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mrtc0/44a5ef4ac0270473bf5ac1612655ade3 to your computer and use it in GitHub Desktop.
Save mrtc0/44a5ef4ac0270473bf5ac1612655ade3 to your computer and use it in GitHub Desktop.
JSONのフィールドをカウントアップしていくやつ
from burp import IBurpExtender
from burp import ITab
from burp import IHttpListener
from burp import IParameter
from javax import swing
import json
value = 0
class BurpExtender(IBurpExtender, ITab, IHttpListener, IParameter):
def registerExtenderCallbacks(self, callbacks):
self._callbacks = callbacks
self._helpers = callbacks.getHelpers()
callbacks.setExtensionName("JSON Parameter Changer")
callbacks.registerHttpListener(self)
self._jPanel = swing.JPanel()
self._jPanel.setLayout(swing.BoxLayout(self._jPanel, swing.BoxLayout.Y_AXIS))
self._jTextIn = swing.JTextField()
self._jTextValue = swing.JTextField()
self._jTextIn.setText("Write your parameter name")
self._jTextValue.setText("Initial Value")
self._jScrollPaneIn = swing.JScrollPane(self._jTextIn)
self._jScrollPaneValue = swing.JScrollPane(self._jTextValue)
self._jPanel.add(self._jScrollPaneIn)
self._jPanel.add(self._jScrollPaneValue)
callbacks.customizeUiComponent(self._jPanel)
callbacks.addSuiteTab(self)
return
def getTabCaption(self):
return "JSON Parameter Changer"
def getUiComponent(self):
return self._jPanel
def processHttpMessage(self, is_tool, is_request, request):
if not is_request:
return
req = self._helpers.analyzeRequest(request.getRequest())
params = req.getParameters()
value = self._jTextValue.getText()
for p in params:
if p.getType() == 6:
data = json.loads(request.getRequest()[req.getBodyOffset():].tostring())
data[self._jTextIn.getText()] = value
body = json.dumps(data)
newRequest = self._helpers.buildHttpMessage(req.getHeaders(), self._helpers.stringToBytes(body))
request.setRequest(newRequest)
value = str(int(value) + 1)
self._jTextValue.setText(value)
return
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment