All Projects → mr-m0nst3r → Burpy

mr-m0nst3r / Burpy

Licence: mit
A plugin that allows you execute python and get return to BurpSuite.

Programming Languages

python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language

Labels

Projects that are alternatives of or similar to Burpy

Burp Info Extractor
burpsuite extension for extract information from data
Stars: ✭ 27 (-82.58%)
Mutual labels:  burpsuite
Burp Bounty Profiles
Burp Bounty profiles compilation, feel free to contribute!
Stars: ✭ 76 (-50.97%)
Mutual labels:  burpsuite
Burp Send To
Adds a customizable "Send to..."-context-menu to your BurpSuite.
Stars: ✭ 114 (-26.45%)
Mutual labels:  burpsuite
Burp Sensitive Param Extractor
burpsuite extension for check and extract sensitive request parameter
Stars: ✭ 35 (-77.42%)
Mutual labels:  burpsuite
Burpsuite Collections
BurpSuite收集:包括不限于 Burp 文章、破解版、插件(非BApp Store)、汉化等相关教程,欢迎添砖加瓦---burpsuite-pro burpsuite-extender burpsuite cracked-version hackbar hacktools fuzzing fuzz-testing burp-plugin burp-extensions bapp-store brute-force-attacks brute-force-passwords waf sqlmap jar
Stars: ✭ 1,081 (+597.42%)
Mutual labels:  burpsuite
Cstc
CSTC is a Burp Suite extension that allows request/response modification using a GUI analogous to CyberChef
Stars: ✭ 91 (-41.29%)
Mutual labels:  burpsuite
Inql
InQL - A Burp Extension for GraphQL Security Testing
Stars: ✭ 715 (+361.29%)
Mutual labels:  burpsuite
Burp Molly Pack
Security checks pack for Burp Suite
Stars: ✭ 123 (-20.65%)
Mutual labels:  burpsuite
Burpsuite Changeu
Stars: ✭ 69 (-55.48%)
Mutual labels:  burpsuite
Burp Fofa
基于BurpSuite的一款FOFA Pro 插件
Stars: ✭ 113 (-27.1%)
Mutual labels:  burpsuite
Burpbounty
Burp Bounty (Scan Check Builder in BApp Store) is a extension of Burp Suite that allows you, in a quick and simple way, to improve the active and passive scanner by means of personalized rules through a very intuitive graphical interface.
Stars: ✭ 1,026 (+561.94%)
Mutual labels:  burpsuite
Docker burp
Burp Pro as a Docker Container
Stars: ✭ 53 (-65.81%)
Mutual labels:  burpsuite
Swurg
Parse OpenAPI documents into Burp Suite for automating OpenAPI-based APIs security assessments (approved by PortSwigger for inclusion in their official BApp Store).
Stars: ✭ 94 (-39.35%)
Mutual labels:  burpsuite
Burp Suite Software Version Checks
Burp extension to passively scan for applications revealing software version numbers
Stars: ✭ 29 (-81.29%)
Mutual labels:  burpsuite
Hunt
No description or website provided.
Stars: ✭ 1,681 (+984.52%)
Mutual labels:  burpsuite
Hackbar
HackBar plugin for Burpsuite
Stars: ✭ 917 (+491.61%)
Mutual labels:  burpsuite
Decoder Plus Plus
An extensible application for penetration testers and software developers to decode/encode data into various formats.
Stars: ✭ 79 (-49.03%)
Mutual labels:  burpsuite
Burpsuite Xkeys
A Burp Suite Extension to extract interesting strings (key, secret, token, or etc.) from a webpage.
Stars: ✭ 144 (-7.1%)
Mutual labels:  burpsuite
Burp Exporter
Exporter is a Burp Suite extension to copy a request to the clipboard as multiple programming languages functions.
Stars: ✭ 122 (-21.29%)
Mutual labels:  burpsuite
Burp Unauth Checker
burpsuite extension for check unauthorized vulnerability
Stars: ✭ 99 (-36.13%)
Mutual labels:  burpsuite

Burpy

A plugin that allows you execute python and get return to BurpSuite.

Intro

During Android APP pentesting, I found it very often that the traffic is encrypted and/or signed, it would be great to have a plugin so we can write python to enc/dec/sign.

And, sometimes, you may just want some customized function to modify part of the traffic, all you need is just write a python script and directly call it from within burpsuite.

If you wanna take advantage of the intruder with payloads need to be encrypted, you need to Enable Processor, and write your own payload processor function.

Author

m0nst3r(Song Xinlei) @ CFCA

Contributors with love

  • @Center-Sun
  • @ViCrack

TODO

  • [x] to python3, from version 1.3
  • [x] dynamic function transform
  • [x] resize and context menu support for popups (@ViCrack)
  • [ ] Syntax highlight for popups
  • [x] word wrap for popups

Changelog

  • change to use class instead of pure function, so that we can init webdriver+selenium when loading without init it per call
  • modified plugin to enable 4 function calls: main/enc/dec/sign
  • add payload processor
  • add auto enc/dec. encrypt function automatically called when you click GO in burp, and decrypt function automatically called when receive response
  • changed default pyro4 port, avoiding brida conflicts
  • migration to python3
  • dynamic context menu items extracted from your python script
  • add first_line variable to header dict

Usage (=v2.0)

NOTE: MAKE SURE YOU HAVE ALL DEPENDENCIES INSTALLED, INCLUDING THE DEPENDENCIES NEEDED FOR YOUR PYTHON SCRIPT

  1. install PyRO, version 4 is used.
  2. configure python and pyro settings
  3. configure the python file you wanna run
  4. click "Start server", burpy will read your python script file and get all functions to generate the context menu
  5. use context memu item to invoke your script's regarding function
  6. write own payload processor, especially usefull with enc/dec

Install editor plugin example: mvn install:install-file -DgroupId=com.fifesoft -DartifactId=rsyntaxtextarea -Dversion=2.6.1.edited -Dpackaging=jar -Dfile=/home/m0nst3r/study/java/rsyntaxtextarea-2.6.1.edited.jar

the python script sample

Just write your own logic to modify the header/body as your need, and return the header/body, just that simple!

All functions will be extracted to generate context menu, except thos with _, __prefix!

Note: header["first_line"] ==> GET /XXX/yyy.php?param1=hello HTTP/1.1.

class Burpy:
    '''
    header is dict
    body is string
    '''
    def __init__(self):
        '''
        here goes some code that will be kept since "start server" clicked, for example, webdriver, which usually takes long time to init
        '''
        pass
        
    def main(self, header, body):
        return header, body

    def _test(self, param):
        '''
        function with `_`, `__`as starting letter will be ignored for context menu

        '''
        # param = magic(param)
        return param
    
    def encrypt(self, header, body):
        '''
        Auto Enc/Dec feature require this function
        '''
        header["Cookie"] = "admin=1"
        return header, body

    def decrypt(self, header, body):
        '''
        Auto Enc/Dec feature require this function

        '''
        # header = magic(header)
        # body = magic(body)
        return header, body

    def processor(self, payload):
        '''
        Enable Processor feature require this function
        payload processor function
        '''
        return payload+"123"

Usage (<v2.0)

check the examples for scripts NOTE: MAKE SURE YOU HAVE ALL DEPENDENCIES INSTALLED, INCLUDING THE DEPENDENCIES NEEDED FOR YOUR PYTHON SCRIPT

  1. install PyRO, version 4 is used.
  2. configure python and pyro settings
  3. configure the python file you wanna run
  4. use spawn to test the result
  5. use Burpy Main/Burpy Enc/Burpy Dec/Burpy Sign context memu to invoke your script
  6. write own payload processor, especially usefull with enc/dec

Install editor plugin example: mvn install:install-file -DgroupId=com.fifesoft -DartifactId=rsyntaxtextarea -Dversion=2.6.1.edited -Dpackaging=jar -Dfile=/home/m0nst3r/study/java/rsyntaxtextarea-2.6.1.edited.jar

the python script sample

Just write your own logic to modify the header/body as your need, and return the header/body, just that simple! Note: if you need to handle response data, e.g decrypt response, you may want to write if-else, because in some cases, the response is different with the request. For example, the request is encrypted=XXXXXX, but the response is XXXXXX, without encrypted.

class Burpy:
    '''
    header is dict
    body is string
    '''
    def __init__(self):
        '''
        here goes some code that will be kept since "start server" clicked, for example, webdriver, which usually takes long time to init
        '''
        pass
        
    def main(self, header, body):
        return header, body
    
    def encrypt(self, header, body):
        header["Cookie"] = "admin=1"
        return header, body

    def decrypt(self, header, body):
        '''
        You may want to add logic if the response differ from the request, for example in the request, the encrypted data is followed after "data=", but in the response, the whole response body is encrypted data, without "data="
        '''
        # header = magic(header)
        # body = magic(body)
        return header, body

    def sign(self, header, body):
        header.update({"Sign":"123123123"})
        return header, body

    def processor(self, payload):
        '''
        payload processor function
        '''
        return payload+"123"

Reference

the great Brida

others

  • Good ideas and contributions are welcomed.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].