buby 1.3.3-java → 1.5.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +28 -14
- data/Rakefile +96 -6
- data/VERSION.yml +5 -0
- data/bin/buby +2 -0
- data/buby.gemspec +102 -17
- data/{java/src → ext/buby/burp}/BurpExtender.java +189 -29
- data/ext/burp_interfaces/burp/IBurpExtender.java +31 -0
- data/ext/burp_interfaces/burp/IBurpExtenderCallbacks.java +785 -0
- data/ext/burp_interfaces/burp/IContextMenuFactory.java +38 -0
- data/ext/burp_interfaces/burp/IContextMenuInvocation.java +156 -0
- data/ext/burp_interfaces/burp/ICookie.java +53 -0
- data/ext/burp_interfaces/burp/IExtensionHelpers.java +352 -0
- data/ext/burp_interfaces/burp/IExtensionStateListener.java +27 -0
- data/ext/burp_interfaces/burp/IHttpListener.java +37 -0
- data/ext/burp_interfaces/burp/IHttpRequestResponse.java +102 -0
- data/ext/burp_interfaces/burp/IHttpRequestResponsePersisted.java +26 -0
- data/ext/burp_interfaces/burp/IHttpRequestResponseWithMarkers.java +44 -0
- data/ext/burp_interfaces/burp/IHttpService.java +39 -0
- data/ext/burp_interfaces/burp/IInterceptedProxyMessage.java +116 -0
- data/ext/burp_interfaces/burp/IIntruderAttack.java +31 -0
- data/ext/burp_interfaces/burp/IIntruderPayloadGenerator.java +50 -0
- data/ext/burp_interfaces/burp/IIntruderPayloadGeneratorFactory.java +40 -0
- data/ext/burp_interfaces/burp/IIntruderPayloadProcessor.java +45 -0
- data/{java/src → ext/burp_interfaces}/burp/IMenuItemHandler.java +36 -40
- data/ext/burp_interfaces/burp/IMessageEditor.java +64 -0
- data/ext/burp_interfaces/burp/IMessageEditorController.java +49 -0
- data/ext/burp_interfaces/burp/IMessageEditorTab.java +102 -0
- data/ext/burp_interfaces/burp/IMessageEditorTabFactory.java +38 -0
- data/ext/burp_interfaces/burp/IParameter.java +104 -0
- data/ext/burp_interfaces/burp/IProxyListener.java +37 -0
- data/ext/burp_interfaces/burp/IRequestInfo.java +95 -0
- data/ext/burp_interfaces/burp/IResponseInfo.java +54 -0
- data/ext/burp_interfaces/burp/IScanIssue.java +120 -0
- data/ext/burp_interfaces/burp/IScanQueueItem.java +80 -0
- data/ext/burp_interfaces/burp/IScannerCheck.java +89 -0
- data/ext/burp_interfaces/burp/IScannerInsertionPoint.java +156 -0
- data/ext/burp_interfaces/burp/IScannerInsertionPointProvider.java +38 -0
- data/ext/burp_interfaces/burp/IScannerListener.java +30 -0
- data/ext/burp_interfaces/burp/IScopeChangeListener.java +25 -0
- data/ext/burp_interfaces/burp/ISessionHandlingAction.java +51 -0
- data/ext/burp_interfaces/burp/ITab.java +38 -0
- data/ext/burp_interfaces/burp/ITempFile.java +33 -0
- data/ext/burp_interfaces/burp/ITextEditor.java +90 -0
- data/lib/buby/burp_extender/console_frame.rb +33 -0
- data/lib/buby/burp_extender/console_pane.rb +26 -0
- data/lib/buby/burp_extender/console_tab.rb +15 -0
- data/lib/buby/burp_extender/context_menu.rb +29 -0
- data/lib/buby/burp_extender/context_menu_factory.rb +17 -0
- data/lib/buby/burp_extender/context_menu_item.rb +13 -0
- data/lib/buby/burp_extender/jcheck_box_menu_item.rb +12 -0
- data/lib/buby/burp_extender/jmenu.rb +11 -0
- data/lib/buby/burp_extender/jmenu_item.rb +12 -0
- data/lib/buby/burp_extender/menu.rb +11 -0
- data/lib/buby/burp_extender/menu_item.rb +12 -0
- data/lib/buby/burp_extender.rb +339 -0
- data/lib/buby/context_menu_factory.rb +35 -0
- data/lib/buby/cookie.rb +37 -0
- data/lib/buby/extender.rb +156 -0
- data/lib/buby/http_listener.rb +29 -0
- data/lib/buby/{extends → implants}/buby_array_wrapper.rb +0 -0
- data/lib/buby/implants/context_menu_invocation.rb +113 -0
- data/lib/buby/implants/cookie.rb +47 -0
- data/lib/buby/implants/extension_helpers.rb +286 -0
- data/lib/buby/{extends → implants}/http_request_response.rb +8 -1
- data/lib/buby/implants/intercepted_proxy_message.rb +53 -0
- data/lib/buby/implants/intruder_attack.rb +42 -0
- data/lib/buby/implants/jruby.rb +64 -0
- data/lib/buby/implants/message_editor.rb +70 -0
- data/lib/buby/implants/message_editor_controller.rb +60 -0
- data/lib/buby/implants/parameter.rb +84 -0
- data/lib/buby/implants/request_info.rb +47 -0
- data/lib/buby/implants/response_info.rb +44 -0
- data/lib/buby/{extends → implants}/scan_issue.rb +1 -2
- data/lib/buby/implants/scan_queue_item.rb +53 -0
- data/lib/buby/implants/scanner_insertion_point.rb +92 -0
- data/lib/buby/implants/temp_file.rb +43 -0
- data/lib/buby/implants/text_editor.rb +63 -0
- data/lib/buby/implants.rb +28 -0
- data/lib/buby/intruder_payload_generator.rb +60 -0
- data/lib/buby/intruder_payload_generator_factory.rb +32 -0
- data/lib/buby/intruder_payload_processor.rb +38 -0
- data/lib/buby/message_editor_controller.rb +41 -0
- data/lib/buby/message_editor_tab.rb +98 -0
- data/lib/buby/message_editor_tab_factory.rb +28 -0
- data/lib/buby/parameter/base.rb +40 -0
- data/lib/buby/parameter/body.rb +7 -0
- data/lib/buby/parameter/cookie.rb +7 -0
- data/lib/buby/parameter/url.rb +7 -0
- data/lib/buby/parameter.rb +15 -0
- data/lib/buby/proxy_listener.rb +26 -0
- data/lib/buby/scan_issue.rb +112 -0
- data/lib/buby/scanner_check.rb +84 -0
- data/lib/buby/scanner_insertion_point.rb +118 -0
- data/lib/buby/scanner_insertion_point_provider.rb +27 -0
- data/lib/buby/scanner_listener.rb +22 -0
- data/lib/buby/scope_change_listener.rb +19 -0
- data/lib/buby/session_handling_action.rb +43 -0
- data/lib/buby/tab.rb +37 -0
- data/lib/buby/version.rb +9 -0
- data/lib/buby.rb +892 -101
- metadata +118 -22
- data/VERSION +0 -1
- data/java/buby.jar +0 -0
- data/java/src/burp/IBurpExtender.java +0 -180
- data/java/src/burp/IBurpExtenderCallbacks.java +0 -373
- data/java/src/burp/IHttpRequestResponse.java +0 -156
- data/java/src/burp/IScanIssue.java +0 -106
- data/java/src/burp/IScanQueueItem.java +0 -76
- data/lib/buby/extends.rb +0 -4
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
package burp;
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* @(#)IExtensionStateListener.java
|
|
5
|
+
*
|
|
6
|
+
* Copyright PortSwigger Ltd. All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* This code may be used to extend the functionality of Burp Suite Free Edition
|
|
9
|
+
* and Burp Suite Professional, provided that this usage does not violate the
|
|
10
|
+
* license terms for those products.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Extensions can implement this interface and then call
|
|
14
|
+
* <code>IBurpExtenderCallbacks.registerExtensionStateListener()</code> to
|
|
15
|
+
* register an extension state listener. The listener will be notified of
|
|
16
|
+
* changes to the extension's state. <b>Note:</b> Any extensions that start
|
|
17
|
+
* background threads or open system resources (such as files or database
|
|
18
|
+
* connections) should register a listener and terminate threads / close
|
|
19
|
+
* resources when the extension is unloaded.
|
|
20
|
+
*/
|
|
21
|
+
public interface IExtensionStateListener
|
|
22
|
+
{
|
|
23
|
+
/**
|
|
24
|
+
* This method is called when the extension is unloaded.
|
|
25
|
+
*/
|
|
26
|
+
void extensionUnloaded();
|
|
27
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
package burp;
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* @(#)IHttpListener.java
|
|
5
|
+
*
|
|
6
|
+
* Copyright PortSwigger Ltd. All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* This code may be used to extend the functionality of Burp Suite Free Edition
|
|
9
|
+
* and Burp Suite Professional, provided that this usage does not violate the
|
|
10
|
+
* license terms for those products.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Extensions can implement this interface and then call
|
|
14
|
+
* <code>IBurpExtenderCallbacks.registerHttpListener()</code> to register an
|
|
15
|
+
* HTTP listener. The listener will be notified of requests and responses made
|
|
16
|
+
* by any Burp tool. Extensions can perform custom analysis or modification of
|
|
17
|
+
* these messages by registering an HTTP listener.
|
|
18
|
+
*/
|
|
19
|
+
public interface IHttpListener
|
|
20
|
+
{
|
|
21
|
+
/**
|
|
22
|
+
* This method is invoked when an HTTP request is about to be issued, and
|
|
23
|
+
* when an HTTP response has been received.
|
|
24
|
+
*
|
|
25
|
+
* @param toolFlag A flag indicating the Burp tool that issued the request.
|
|
26
|
+
* Burp tool flags are defined in the
|
|
27
|
+
* <code>IBurpExtenderCallbacks</code> interface.
|
|
28
|
+
* @param messageIsRequest Flags whether the method is being invoked for a
|
|
29
|
+
* request or response.
|
|
30
|
+
* @param messageInfo Details of the request / response to be processed.
|
|
31
|
+
* Extensions can call the setter methods on this object to update the
|
|
32
|
+
* current message and so modify Burp's behavior.
|
|
33
|
+
*/
|
|
34
|
+
void processHttpMessage(int toolFlag,
|
|
35
|
+
boolean messageIsRequest,
|
|
36
|
+
IHttpRequestResponse messageInfo);
|
|
37
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
package burp;
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* @(#)IHttpRequestResponse.java
|
|
5
|
+
*
|
|
6
|
+
* Copyright PortSwigger Ltd. All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* This code may be used to extend the functionality of Burp Suite Free Edition
|
|
9
|
+
* and Burp Suite Professional, provided that this usage does not violate the
|
|
10
|
+
* license terms for those products.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* This interface is used to retrieve and update details about HTTP messages.
|
|
14
|
+
*
|
|
15
|
+
* <b>Note:</b> The setter methods generally can only be used before the message
|
|
16
|
+
* has been processed, and not in read-only contexts. The getter methods
|
|
17
|
+
* relating to response details can only be used after the request has been
|
|
18
|
+
* issued.
|
|
19
|
+
*/
|
|
20
|
+
public interface IHttpRequestResponse
|
|
21
|
+
{
|
|
22
|
+
/**
|
|
23
|
+
* This method is used to retrieve the request message.
|
|
24
|
+
*
|
|
25
|
+
* @return The request message.
|
|
26
|
+
*/
|
|
27
|
+
byte[] getRequest();
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* This method is used to update the request message.
|
|
31
|
+
*
|
|
32
|
+
* @param message The new request message.
|
|
33
|
+
*/
|
|
34
|
+
void setRequest(byte[] message);
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* This method is used to retrieve the response message.
|
|
38
|
+
*
|
|
39
|
+
* @return The response message.
|
|
40
|
+
*/
|
|
41
|
+
byte[] getResponse();
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* This method is used to update the response message.
|
|
45
|
+
*
|
|
46
|
+
* @param message The new response message.
|
|
47
|
+
*/
|
|
48
|
+
void setResponse(byte[] message);
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* This method is used to retrieve the user-annotated comment for this item,
|
|
52
|
+
* if applicable.
|
|
53
|
+
*
|
|
54
|
+
* @return The user-annotated comment for this item, or null if none is set.
|
|
55
|
+
*/
|
|
56
|
+
String getComment();
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* This method is used to update the user-annotated comment for this item.
|
|
60
|
+
*
|
|
61
|
+
* @param comment The comment to be assigned to this item.
|
|
62
|
+
*/
|
|
63
|
+
void setComment(String comment);
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* This method is used to retrieve the user-annotated highlight for this
|
|
67
|
+
* item, if applicable.
|
|
68
|
+
*
|
|
69
|
+
* @return The user-annotated highlight for this item, or null if none is
|
|
70
|
+
* set.
|
|
71
|
+
*/
|
|
72
|
+
String getHighlight();
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* This method is used to update the user-annotated highlight for this item.
|
|
76
|
+
*
|
|
77
|
+
* @param color The highlight color to be assigned to this item. Accepted
|
|
78
|
+
* values are: red, orange, yellow, green, cyan, blue, pink, magenta, gray,
|
|
79
|
+
* or a null String to clear any existing highlight.
|
|
80
|
+
*/
|
|
81
|
+
void setHighlight(String color);
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* This method is used to retrieve the HTTP service for this request /
|
|
85
|
+
* response.
|
|
86
|
+
*
|
|
87
|
+
* @return An
|
|
88
|
+
* <code>IHttpService</code> object containing details of the HTTP service.
|
|
89
|
+
*/
|
|
90
|
+
IHttpService getHttpService();
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* This method is used to update the HTTP service for this request /
|
|
94
|
+
* response.
|
|
95
|
+
*
|
|
96
|
+
* @param httpService An
|
|
97
|
+
* <code>IHttpService</code> object containing details of the new HTTP
|
|
98
|
+
* service.
|
|
99
|
+
*/
|
|
100
|
+
void setHttpService(IHttpService httpService);
|
|
101
|
+
|
|
102
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
package burp;
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* @(#)IHttpRequestResponsePersisted.java
|
|
5
|
+
*
|
|
6
|
+
* Copyright PortSwigger Ltd. All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* This code may be used to extend the functionality of Burp Suite Free Edition
|
|
9
|
+
* and Burp Suite Professional, provided that this usage does not violate the
|
|
10
|
+
* license terms for those products.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* This interface is used for an
|
|
14
|
+
* <code>IHttpRequestResponse</code> object whose request and response messages
|
|
15
|
+
* have been saved to temporary files using
|
|
16
|
+
* <code>IBurpExtenderCallbacks.saveBuffersToTempFiles()</code>.
|
|
17
|
+
*/
|
|
18
|
+
public interface IHttpRequestResponsePersisted extends IHttpRequestResponse
|
|
19
|
+
{
|
|
20
|
+
/**
|
|
21
|
+
* This method is used to permanently delete the saved temporary files. It
|
|
22
|
+
* will no longer be possible to retrieve the request or response for this
|
|
23
|
+
* item.
|
|
24
|
+
*/
|
|
25
|
+
void deleteTempFiles();
|
|
26
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
package burp;
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* @(#)IHttpRequestResponseWithMarkers.java
|
|
5
|
+
*
|
|
6
|
+
* Copyright PortSwigger Ltd. All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* This code may be used to extend the functionality of Burp Suite Free Edition
|
|
9
|
+
* and Burp Suite Professional, provided that this usage does not violate the
|
|
10
|
+
* license terms for those products.
|
|
11
|
+
*/
|
|
12
|
+
import java.util.List;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* This interface is used for an
|
|
16
|
+
* <code>IHttpRequestResponse</code> object that has had markers applied.
|
|
17
|
+
* Extensions can create instances of this interface using
|
|
18
|
+
* <code>IBurpExtenderCallbacks.applyMarkers()</code>, or provide their own
|
|
19
|
+
* implementation. Markers are used in various situations, such as specifying
|
|
20
|
+
* Intruder payload positions, Scanner insertion points, and highlights in
|
|
21
|
+
* Scanner issues.
|
|
22
|
+
*/
|
|
23
|
+
public interface IHttpRequestResponseWithMarkers extends IHttpRequestResponse
|
|
24
|
+
{
|
|
25
|
+
/**
|
|
26
|
+
* This method returns the details of the request markers.
|
|
27
|
+
*
|
|
28
|
+
* @return A list of index pairs representing the offsets of markers for the
|
|
29
|
+
* request message. Each item in the list is an int[2] array containing the
|
|
30
|
+
* start and end offsets for the marker. The method may return
|
|
31
|
+
* <code>null</code> if no request markers are defined.
|
|
32
|
+
*/
|
|
33
|
+
List<int[]> getRequestMarkers();
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* This method returns the details of the response markers.
|
|
37
|
+
*
|
|
38
|
+
* @return A list of index pairs representing the offsets of markers for the
|
|
39
|
+
* response message. Each item in the list is an int[2] array containing the
|
|
40
|
+
* start and end offsets for the marker. The method may return
|
|
41
|
+
* <code>null</code> if no response markers are defined.
|
|
42
|
+
*/
|
|
43
|
+
List<int[]> getResponseMarkers();
|
|
44
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
package burp;
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* @(#)IHttpService.java
|
|
5
|
+
*
|
|
6
|
+
* Copyright PortSwigger Ltd. All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* This code may be used to extend the functionality of Burp Suite Free Edition
|
|
9
|
+
* and Burp Suite Professional, provided that this usage does not violate the
|
|
10
|
+
* license terms for those products.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* This interface is used to provide details about an HTTP service, to which
|
|
14
|
+
* HTTP requests can be sent.
|
|
15
|
+
*/
|
|
16
|
+
public interface IHttpService
|
|
17
|
+
{
|
|
18
|
+
/**
|
|
19
|
+
* This method returns the hostname or IP address for the service.
|
|
20
|
+
*
|
|
21
|
+
* @return The hostname or IP address for the service.
|
|
22
|
+
*/
|
|
23
|
+
String getHost();
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* This method returns the port number for the service.
|
|
27
|
+
*
|
|
28
|
+
* @return The port number for the service.
|
|
29
|
+
*/
|
|
30
|
+
int getPort();
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* This method returns the protocol for the service.
|
|
34
|
+
*
|
|
35
|
+
* @return The protocol for the service. Expected values are "http" or
|
|
36
|
+
* "https".
|
|
37
|
+
*/
|
|
38
|
+
String getProtocol();
|
|
39
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
package burp;
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* @(#)IInterceptedProxyMessage.java
|
|
5
|
+
*
|
|
6
|
+
* Copyright PortSwigger Ltd. All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* This code may be used to extend the functionality of Burp Suite Free Edition
|
|
9
|
+
* and Burp Suite Professional, provided that this usage does not violate the
|
|
10
|
+
* license terms for those products.
|
|
11
|
+
*/
|
|
12
|
+
import java.net.InetAddress;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* This interface is used to represent an HTTP message that has been intercepted
|
|
16
|
+
* by Burp Proxy. Extensions can register an
|
|
17
|
+
* <code>IProxyListener</code> to receive details of proxy messages using this
|
|
18
|
+
* interface. *
|
|
19
|
+
*/
|
|
20
|
+
public interface IInterceptedProxyMessage
|
|
21
|
+
{
|
|
22
|
+
/**
|
|
23
|
+
* This action causes Burp Proxy to follow the current interception rules to
|
|
24
|
+
* determine the appropriate action to take for the message.
|
|
25
|
+
*/
|
|
26
|
+
static final int ACTION_FOLLOW_RULES = 0;
|
|
27
|
+
/**
|
|
28
|
+
* This action causes Burp Proxy to present the message to the user for
|
|
29
|
+
* manual review or modification.
|
|
30
|
+
*/
|
|
31
|
+
static final int ACTION_DO_INTERCEPT = 1;
|
|
32
|
+
/**
|
|
33
|
+
* This action causes Burp Proxy to forward the message to the remote server
|
|
34
|
+
* or client, without presenting it to the user.
|
|
35
|
+
*/
|
|
36
|
+
static final int ACTION_DONT_INTERCEPT = 2;
|
|
37
|
+
/**
|
|
38
|
+
* This action causes Burp Proxy to drop the message.
|
|
39
|
+
*/
|
|
40
|
+
static final int ACTION_DROP = 3;
|
|
41
|
+
/**
|
|
42
|
+
* This action causes Burp Proxy to follow the current interception rules to
|
|
43
|
+
* determine the appropriate action to take for the message, and then make a
|
|
44
|
+
* second call to processProxyMessage.
|
|
45
|
+
*/
|
|
46
|
+
static final int ACTION_FOLLOW_RULES_AND_REHOOK = 0x10;
|
|
47
|
+
/**
|
|
48
|
+
* This action causes Burp Proxy to present the message to the user for
|
|
49
|
+
* manual review or modification, and then make a second call to
|
|
50
|
+
* processProxyMessage.
|
|
51
|
+
*/
|
|
52
|
+
static final int ACTION_DO_INTERCEPT_AND_REHOOK = 0x11;
|
|
53
|
+
/**
|
|
54
|
+
* This action causes Burp Proxy to skip user interception, and then make a
|
|
55
|
+
* second call to processProxyMessage.
|
|
56
|
+
*/
|
|
57
|
+
static final int ACTION_DONT_INTERCEPT_AND_REHOOK = 0x12;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* This method retrieves a unique reference number for this
|
|
61
|
+
* request/response.
|
|
62
|
+
*
|
|
63
|
+
* @return An identifier that is unique to a single request/response pair.
|
|
64
|
+
* Extensions can use this to correlate details of requests and responses
|
|
65
|
+
* and perform processing on the response message accordingly.
|
|
66
|
+
*/
|
|
67
|
+
int getMessageReference();
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* This method retrieves details of the intercepted message.
|
|
71
|
+
*
|
|
72
|
+
* @return An <code>IHttpRequestResponse</code> object containing details of
|
|
73
|
+
* the intercepted message.
|
|
74
|
+
*/
|
|
75
|
+
IHttpRequestResponse getMessageInfo();
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* This method retrieves the currently defined interception action. The
|
|
79
|
+
* default action is
|
|
80
|
+
* <code>ACTION_FOLLOW_RULES</code>. If multiple proxy listeners are
|
|
81
|
+
* registered, then other listeners may already have modified the
|
|
82
|
+
* interception action before it reaches the current listener. This method
|
|
83
|
+
* can be used to determine whether this has occurred.
|
|
84
|
+
*
|
|
85
|
+
* @return The currently defined interception action. Possible values are
|
|
86
|
+
* defined within this interface.
|
|
87
|
+
*/
|
|
88
|
+
int getInterceptAction();
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* This method is used to update the interception action.
|
|
92
|
+
*
|
|
93
|
+
* @param interceptAction The new interception action. Possible values are
|
|
94
|
+
* defined within this interface.
|
|
95
|
+
*/
|
|
96
|
+
void setInterceptAction(int interceptAction);
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* This method retrieves the name of the Burp Proxy listener that is
|
|
100
|
+
* processing the intercepted message.
|
|
101
|
+
*
|
|
102
|
+
* @return The name of the Burp Proxy listener that is processing the
|
|
103
|
+
* intercepted message. The format is the same as that shown in the Proxy
|
|
104
|
+
* Listeners UI - for example, "127.0.0.1:8080".
|
|
105
|
+
*/
|
|
106
|
+
String getListenerInterface();
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* This method retrieves the client IP address from which the request for
|
|
110
|
+
* the intercepted message was received.
|
|
111
|
+
*
|
|
112
|
+
* @return The client IP address from which the request for the intercepted
|
|
113
|
+
* message was received.
|
|
114
|
+
*/
|
|
115
|
+
InetAddress getClientIpAddress();
|
|
116
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
package burp;
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* @(#)IIntruderAttack.java
|
|
5
|
+
*
|
|
6
|
+
* Copyright PortSwigger Ltd. All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* This code may be used to extend the functionality of Burp Suite Free Edition
|
|
9
|
+
* and Burp Suite Professional, provided that this usage does not violate the
|
|
10
|
+
* license terms for those products.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* This interface is used to hold details about an Intruder attack.
|
|
14
|
+
*/
|
|
15
|
+
public interface IIntruderAttack
|
|
16
|
+
{
|
|
17
|
+
/**
|
|
18
|
+
* This method is used to retrieve the HTTP service for the attack.
|
|
19
|
+
*
|
|
20
|
+
* @return The HTTP service for the attack.
|
|
21
|
+
*/
|
|
22
|
+
IHttpService getHttpService();
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* This method is used to retrieve the request template for the attack.
|
|
26
|
+
*
|
|
27
|
+
* @return The request template for the attack.
|
|
28
|
+
*/
|
|
29
|
+
byte[] getRequestTemplate();
|
|
30
|
+
|
|
31
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
package burp;
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* @(#)IIntruderPayloadGenerator.java
|
|
5
|
+
*
|
|
6
|
+
* Copyright PortSwigger Ltd. All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* This code may be used to extend the functionality of Burp Suite Free Edition
|
|
9
|
+
* and Burp Suite Professional, provided that this usage does not violate the
|
|
10
|
+
* license terms for those products.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* This interface is used for custom Intruder payload generators. Extensions
|
|
14
|
+
* that have registered an
|
|
15
|
+
* <code>IIntruderPayloadGeneratorFactory</code> must return a new instance of
|
|
16
|
+
* this interface when required as part of a new Intruder attack.
|
|
17
|
+
*/
|
|
18
|
+
public interface IIntruderPayloadGenerator
|
|
19
|
+
{
|
|
20
|
+
/**
|
|
21
|
+
* This method is used by Burp to determine whether the payload generator is
|
|
22
|
+
* able to provide any further payloads.
|
|
23
|
+
*
|
|
24
|
+
* @return Extensions should return
|
|
25
|
+
* <code>false</code> when all the available payloads have been used up,
|
|
26
|
+
* otherwise
|
|
27
|
+
* <code>true</code>.
|
|
28
|
+
*/
|
|
29
|
+
boolean hasMorePayloads();
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* This method is used by Burp to obtain the value of the next payload.
|
|
33
|
+
*
|
|
34
|
+
* @param baseValue The base value of the current payload position. This
|
|
35
|
+
* value may be
|
|
36
|
+
* <code>null</code> if the concept of a base value is not applicable (e.g.
|
|
37
|
+
* in a battering ram attack).
|
|
38
|
+
* @return The next payload to use in the attack.
|
|
39
|
+
*/
|
|
40
|
+
byte[] getNextPayload(byte[] baseValue);
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* This method is used by Burp to reset the state of the payload generator
|
|
44
|
+
* so that the next call to
|
|
45
|
+
* <code>getNextPayload()</code> returns the first payload again. This
|
|
46
|
+
* method will be invoked when an attack uses the same payload generator for
|
|
47
|
+
* more than one payload position, for example in a sniper attack.
|
|
48
|
+
*/
|
|
49
|
+
void reset();
|
|
50
|
+
}
|