buby 1.3.3-java → 1.5.0-java
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
}
|