30
AppSec USA 2014 Denver, Colorado Customizing Burp Suite Getting the Most out of Burp Extensions

AppSec USA 2014 Denver, Colorado Customizing Burp Suite Getting the Most out of Burp Extensions

Embed Size (px)

Citation preview

AppSec USA 2014

Denver, Colorado

Customizing Burp Suite

Getting the Most out of Burp Extensions

2

August DetlefsenSenior Application Security Consultant

[email protected]• @codemagi• http://www.codemagi.com/blog

3

Burp Suite• Burp Suite is a powerful tool for performing

security assessments• Burp Plugin API allows new features to be

added

4

What Can I Do With Plugins? • Passive Scanning• Active Scanning• Alter/append requests• Define Insertion Points for Scanner/Intruder

5

Prerequisites• Burp Suite Pro v 1.5.x• Java 1.6.x• NetBeans• Other programming languages

6

Creating An Extension• Download the Extender API from Portswigger:

http://portswigger.net/burp/extender/api/burp_extender_api.zip

7

Creating an Extension• Create a new project with existing sources:

8

Creating an Extension• Create the BurpExtender class– In package ‘burp’– Implement IBurpExtender

9

Creating an Extension

10

Creating an Extension• Implement registerExtenderCallbacks

11

Load the Extension into Burp Suite

12

Passive Scanning• Search responses for problematic values• Built-in passive scans– Credit card numbers– Known passwords– Missing headers

Building a Passive Scanner

13

Passive Scanning – Room for Improvement• Error Messages• Software Version Numbers

Building a Passive Scanner

14

Building a Passive Scanner• Implement the IScannerCheck interface:

• Register the extension as a scanner:

Building a Passive Scanner

15

IScannerCheck.doPassiveScan()

Building a Passive Scanner

16

IScannerCheck.doPassiveScan()

Building a Passive Scanner

17

IScannerCheck.consolidateDuplicateIssues()• Ensure an issue is only posted to scanner once

Building a Passive Scanner

18

IScannerCheck.doActiveScan()• Only needed for active scans

Building a Passive Scanner

19

Active Scanning• Issue requests containing attacks • Look for indication of success in response• Built-In Active Scans– XSS– SQL Injection– Path Traversal– etc

Building an Active Scanner

20

IScannerCheck.doActiveScan()

Building an Active Scanner

21

Insertion Points • Locations of parameters in request • Contain data the server will act upon

Building an Active Scanner

22

Building an Active Scanner

23

Building an Active Scanner

24

Defining Insertion Points• Implement IScannerInsertionPointProvider– getInsertionPoints()

• Register as an insertion point provider

Building an Active Scanner

25

BurpExtender.getInsertionPoints()

Building an Active Scanner

26

Building an Active Scanner

27

Debugging• callbacks.printOutput(String)• callbacks.printError(String)• Exception.printStackTrace()

Utilities

28

Debugging – Stack Traces• Get the error OutputStream

• Print a stack trace to the stream

Utilities

29

Summary• Setup• Passive Scanning• Active Scanning• Handling custom request types• Utilities

30

Build Extensions!Profit!