├── sql.jpg ├── sql2.jpg ├── jd-gui.jpg ├── sqlmap.jar ├── sqlmap4.jpg ├── sqlmap2burp.jpg ├── sqlmap4burp.jar ├── sqlmap4burp.jpg ├── burp_sqlmap ├── src │ ├── META-INF │ │ └── MANIFEST.MF │ ├── latershow │ │ └── sniffer │ │ │ └── Main.java │ └── burp │ │ ├── EnvUtil.java │ │ ├── IScopeChangeListener.java │ │ ├── IIntruderAttack.java │ │ ├── IHttpRequestResponsePersisted.java │ │ ├── ITempFile.java │ │ ├── Context.java │ │ ├── IExtensionStateListener.java │ │ ├── IBurpExtender.java │ │ ├── IScannerListener.java │ │ ├── IHttpService.java │ │ ├── ITab.java │ │ ├── IMenuItemHandler.java │ │ ├── IProxyListener.java │ │ ├── IContextMenuFactory.java │ │ ├── IScannerInsertionPointProvider.java │ │ ├── IIntruderPayloadGeneratorFactory.java │ │ ├── IHttpListener.java │ │ ├── IMessageEditorTabFactory.java │ │ ├── SnifferContextMenuFactory.java │ │ ├── ICookie.java │ │ ├── IIntruderPayloadProcessor.java │ │ ├── IHttpRequestResponseWithMarkers.java │ │ ├── IIntruderPayloadGenerator.java │ │ ├── IMessageEditorController.java │ │ ├── SqlmapStarter.java │ │ ├── IMessageEditor.java │ │ ├── BurpExtender.java │ │ ├── ISessionHandlingAction.java │ │ ├── IResponseInfo.java │ │ ├── IScanQueueItem.java │ │ ├── IRequestInfo.java │ │ ├── ITextEditor.java │ │ ├── IHttpRequestResponse.java │ │ ├── IParameter.java │ │ ├── IScannerCheck.java │ │ ├── IMessageEditorTab.java │ │ ├── IScanIssue.java │ │ ├── IInterceptedProxyMessage.java │ │ ├── IScannerInsertionPoint.java │ │ ├── IContextMenuInvocation.java │ │ ├── IExtensionHelpers.java │ │ └── IBurpExtenderCallbacks.java ├── .idea │ ├── description.html │ ├── encodings.xml │ ├── vcs.xml │ ├── modules.xml │ ├── misc.xml │ ├── artifacts │ │ └── burp_sqlmap_jar.xml │ ├── compiler.xml │ └── workspace.xml ├── out │ ├── production │ │ └── burp_sqlmap │ │ │ ├── META-INF │ │ │ └── MANIFEST.MF │ │ │ ├── burp │ │ │ ├── ITab.class │ │ │ ├── Context.class │ │ │ ├── EnvUtil.class │ │ │ ├── ICookie.class │ │ │ ├── ITempFile.class │ │ │ ├── IParameter.class │ │ │ ├── IScanIssue.class │ │ │ ├── ITextEditor.class │ │ │ ├── BurpExtender$1.class │ │ │ ├── BurpExtender.class │ │ │ ├── IBurpExtender.class │ │ │ ├── IHttpListener.class │ │ │ ├── IHttpService.class │ │ │ ├── IMessageEditor.class │ │ │ ├── IProxyListener.class │ │ │ ├── IRequestInfo.class │ │ │ ├── IResponseInfo.class │ │ │ ├── IScanQueueItem.class │ │ │ ├── IScannerCheck.class │ │ │ ├── SqlmapStarter.class │ │ │ ├── BurpExtender$1$1.class │ │ │ ├── IIntruderAttack.class │ │ │ ├── IMenuItemHandler.class │ │ │ ├── IScannerListener.class │ │ │ ├── IContextMenuFactory.class │ │ │ ├── IExtensionHelpers.class │ │ │ ├── IMessageEditorTab.class │ │ │ ├── IHttpRequestResponse.class │ │ │ ├── IScopeChangeListener.class │ │ │ ├── IBurpExtenderCallbacks.class │ │ │ ├── IContextMenuInvocation.class │ │ │ ├── IExtensionStateListener.class │ │ │ ├── IInterceptedProxyMessage.class │ │ │ ├── IMessageEditorController.class │ │ │ ├── IMessageEditorTabFactory.class │ │ │ ├── IScannerInsertionPoint.class │ │ │ ├── ISessionHandlingAction.class │ │ │ ├── IIntruderPayloadGenerator.class │ │ │ ├── IIntruderPayloadProcessor.class │ │ │ ├── SnifferContextMenuFactory.class │ │ │ ├── IHttpRequestResponsePersisted.class │ │ │ ├── SnifferContextMenuFactory$1.class │ │ │ ├── IHttpRequestResponseWithMarkers.class │ │ │ ├── IScannerInsertionPointProvider.class │ │ │ └── IIntruderPayloadGeneratorFactory.class │ │ │ └── latershow │ │ │ └── sniffer │ │ │ └── Main.class │ └── artifacts │ │ └── burp_sqlmap_jar │ │ └── burp_sqlmap.jar └── burp_sqlmap.iml ├── sqlmap-classpath ├── commons-io-2.4.jar └── commons-lang3-3.6.jar └── README.md /sql.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/sql.jpg -------------------------------------------------------------------------------- /sql2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/sql2.jpg -------------------------------------------------------------------------------- /jd-gui.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/jd-gui.jpg -------------------------------------------------------------------------------- /sqlmap.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/sqlmap.jar -------------------------------------------------------------------------------- /sqlmap4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/sqlmap4.jpg -------------------------------------------------------------------------------- /sqlmap2burp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/sqlmap2burp.jpg -------------------------------------------------------------------------------- /sqlmap4burp.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/sqlmap4burp.jar -------------------------------------------------------------------------------- /sqlmap4burp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/sqlmap4burp.jpg -------------------------------------------------------------------------------- /burp_sqlmap/src/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Main-Class: latershow.sniffer.Main 3 | 4 | -------------------------------------------------------------------------------- /burp_sqlmap/.idea/description.html: -------------------------------------------------------------------------------- 1 | Simple Java application that includes a class with main() method -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Main-Class: latershow.sniffer.Main 3 | 4 | -------------------------------------------------------------------------------- /sqlmap-classpath/commons-io-2.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/sqlmap-classpath/commons-io-2.4.jar -------------------------------------------------------------------------------- /sqlmap-classpath/commons-lang3-3.6.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/sqlmap-classpath/commons-lang3-3.6.jar -------------------------------------------------------------------------------- /burp_sqlmap/src/latershow/sniffer/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/src/latershow/sniffer/Main.java -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/ITab.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/ITab.class -------------------------------------------------------------------------------- /burp_sqlmap/out/artifacts/burp_sqlmap_jar/burp_sqlmap.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/artifacts/burp_sqlmap_jar/burp_sqlmap.jar -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/Context.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/Context.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/EnvUtil.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/EnvUtil.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/ICookie.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/ICookie.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/ITempFile.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/ITempFile.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IParameter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IParameter.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IScanIssue.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IScanIssue.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/ITextEditor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/ITextEditor.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/BurpExtender$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/BurpExtender$1.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/BurpExtender.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/BurpExtender.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IBurpExtender.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IBurpExtender.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IHttpListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IHttpListener.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IHttpService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IHttpService.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IMessageEditor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IMessageEditor.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IProxyListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IProxyListener.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IRequestInfo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IRequestInfo.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IResponseInfo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IResponseInfo.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IScanQueueItem.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IScanQueueItem.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IScannerCheck.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IScannerCheck.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/SqlmapStarter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/SqlmapStarter.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/BurpExtender$1$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/BurpExtender$1$1.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IIntruderAttack.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IIntruderAttack.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IMenuItemHandler.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IMenuItemHandler.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IScannerListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IScannerListener.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IContextMenuFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IContextMenuFactory.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IExtensionHelpers.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IExtensionHelpers.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IMessageEditorTab.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IMessageEditorTab.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/latershow/sniffer/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/latershow/sniffer/Main.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IHttpRequestResponse.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IHttpRequestResponse.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IScopeChangeListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IScopeChangeListener.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IBurpExtenderCallbacks.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IBurpExtenderCallbacks.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IContextMenuInvocation.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IContextMenuInvocation.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IExtensionStateListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IExtensionStateListener.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IInterceptedProxyMessage.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IInterceptedProxyMessage.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IMessageEditorController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IMessageEditorController.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IMessageEditorTabFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IMessageEditorTabFactory.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IScannerInsertionPoint.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IScannerInsertionPoint.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/ISessionHandlingAction.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/ISessionHandlingAction.class -------------------------------------------------------------------------------- /burp_sqlmap/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IIntruderPayloadGenerator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IIntruderPayloadGenerator.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IIntruderPayloadProcessor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IIntruderPayloadProcessor.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/SnifferContextMenuFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/SnifferContextMenuFactory.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IHttpRequestResponsePersisted.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IHttpRequestResponsePersisted.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/SnifferContextMenuFactory$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/SnifferContextMenuFactory$1.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IHttpRequestResponseWithMarkers.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IHttpRequestResponseWithMarkers.class -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IScannerInsertionPointProvider.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IScannerInsertionPointProvider.class -------------------------------------------------------------------------------- /burp_sqlmap/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /burp_sqlmap/out/production/burp_sqlmap/burp/IIntruderPayloadGeneratorFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/SqlMap_BurpSuite/HEAD/burp_sqlmap/out/production/burp_sqlmap/burp/IIntruderPayloadGeneratorFactory.class -------------------------------------------------------------------------------- /burp_sqlmap/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /burp_sqlmap/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /burp_sqlmap/.idea/artifacts/burp_sqlmap_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | $PROJECT_DIR$/out/artifacts/burp_sqlmap_jar 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/EnvUtil.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /** 4 | * Created by liushuqing on 16/11/2. 5 | */ 6 | public class EnvUtil { 7 | 8 | private static String OS_NAME = System.getProperties().getProperty("os.name").toUpperCase(); 9 | 10 | /** 11 | * if local env is windows(true) or linux(false) 12 | * 13 | * @return 14 | */ 15 | public static boolean isWindows() { 16 | System.out.println("local env is:" + OS_NAME); 17 | if (OS_NAME.contains("WINDOW")) { 18 | System.out.println("local env is windows"); 19 | return true; 20 | } else { 21 | System.out.println("local env is linux"); 22 | } 23 | return false; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /burp_sqlmap/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IScopeChangeListener.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IScopeChangeListener.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 | * IBurpExtenderCallbacks.registerScopeChangeListener() to register 15 | * a scope change listener. The listener will be notified whenever a change 16 | * occurs to Burp's suite-wide target scope. 17 | */ 18 | public interface IScopeChangeListener 19 | { 20 | /** 21 | * This method is invoked whenever a change occurs to Burp's suite-wide 22 | * target scope. 23 | */ 24 | void scopeChanged(); 25 | } 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SqlMap_BurpSuite 2 | 3 | 4 | ### 编译好的sqlmap.jar 5 | 6 | https://github.com/jas502n/SqlMap_BurpSuite/blob/master/burp_sqlmap/out/artifacts/burp_sqlmap_jar/burp_sqlmap.jar 7 | 8 | 9 | ![](./sqlmap4burp.jpg) 10 | ![](./sqlmap2burp.jpg) 11 | ![](./jd-gui.jpg) 12 | 13 | ### grep -r "send to Sqlmap" 14 | `src/burp/SnifferContextMenuFactory.java: JMenuItem jMenuItem = new JMenuItem("send to Sqlmap"); ` 15 | 16 | `JMenuItem jMenuItem = new JMenuItem("send to sqlmap4burp");` 17 | 18 | ![](./sqlmap4.jpg) 19 | 20 | https://github.com/jas502n/SqlMap_BurpSuite/blob/master/sqlmap4burp.jar 21 | ![](./sql.jpg) 22 | ![](./sql2.jpg) 23 | 24 | ## 使用Burp, Sqlmap进行自动化批量SQL注入渗透测试 25 | 26 | https://t0data.gitbooks.io/burpsuite/content/chapter18.html 27 | 28 | ![](https://t0data.gitbooks.io/burpsuite/content/images/18_14.png) 29 | 30 | 31 | ### 参考链接 32 | 33 | https://github.com/difcareer/sqlmap4burp 34 | 35 | https://t0data.gitbooks.io/burpsuite/content/chapter18.html 36 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IIntruderAttack.java: -------------------------------------------------------------------------------- 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 | } 32 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IHttpRequestResponsePersisted.java: -------------------------------------------------------------------------------- 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 | * IHttpRequestResponse object whose request and response messages 15 | * have been saved to temporary files using 16 | * IBurpExtenderCallbacks.saveBuffersToTempFiles(). 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 | } 27 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/ITempFile.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)ITempFile.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 of a temporary file that has been 14 | * created via a call to 15 | * IBurpExtenderCallbacks.saveToTempFile(). 16 | * 17 | */ 18 | public interface ITempFile 19 | { 20 | /** 21 | * This method is used to retrieve the contents of the buffer that was saved 22 | * in the temporary file. 23 | * 24 | * @return The contents of the buffer that was saved in the temporary file. 25 | */ 26 | byte[] getBuffer(); 27 | 28 | /** 29 | * This method is used to permanently delete the temporary file when it is 30 | * no longer required. 31 | */ 32 | void delete(); 33 | } 34 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/Context.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | import java.util.Properties; 4 | 5 | /** 6 | * Created by wm on 2014/9/25. 7 | */ 8 | public class Context { 9 | 10 | public static Properties properties = System.getProperties(); 11 | 12 | public final static String tempDir = (String) properties.get("java.io.tmpdir"); 13 | 14 | public static String tempReqName = null; 15 | 16 | public static String tempBatName = null; 17 | 18 | public static String userConfig = null; 19 | 20 | public static String getTempReqName(boolean reGet) { 21 | if (tempReqName == null || reGet) { 22 | long ms = System.currentTimeMillis(); 23 | tempReqName = tempDir + "/" + ms + ".req"; 24 | } 25 | return tempReqName; 26 | } 27 | 28 | public static String getTempBatName(boolean reGet){ 29 | if (tempBatName == null || reGet) { 30 | long ms = System.currentTimeMillis(); 31 | tempBatName = tempDir + "/" + ms + ".bat"; 32 | } 33 | return tempBatName; 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IExtensionStateListener.java: -------------------------------------------------------------------------------- 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 | * IBurpExtenderCallbacks.registerExtensionStateListener() to 15 | * register an extension state listener. The listener will be notified of 16 | * changes to the extension's state. Note: 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 | } 28 | -------------------------------------------------------------------------------- /burp_sqlmap/burp_sqlmap.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IBurpExtender.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IBurpExtender.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 | * All extensions must implement this interface. 14 | * 15 | * Implementations must be called BurpExtender, in the package burp, must be 16 | * declared public, and must provide a default (public, no-argument) 17 | * constructor. 18 | */ 19 | public interface IBurpExtender 20 | { 21 | /** 22 | * This method is invoked when the extension is loaded. It registers an 23 | * instance of the 24 | * IBurpExtenderCallbacks interface, providing methods that may 25 | * be invoked by the extension to perform various actions. 26 | * 27 | * @param callbacks An 28 | * IBurpExtenderCallbacks object. 29 | */ 30 | void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks); 31 | } 32 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IScannerListener.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IScannerListener.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 | * IBurpExtenderCallbacks.registerScannerListener() to register a 15 | * Scanner listener. The listener will be notified of new issues that are 16 | * reported by the Scanner tool. Extensions can perform custom analysis or 17 | * logging of Scanner issues by registering a Scanner listener. 18 | */ 19 | public interface IScannerListener 20 | { 21 | /** 22 | * This method is invoked when a new issue is added to Burp Scanner's 23 | * results. 24 | * 25 | * @param issue An 26 | * IScanIssue object that the extension can query to obtain 27 | * details about the new issue. 28 | */ 29 | void newScanIssue(IScanIssue issue); 30 | } 31 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IHttpService.java: -------------------------------------------------------------------------------- 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 | } 40 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/ITab.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)ITab.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.awt.Component; 13 | 14 | /** 15 | * This interface is used to provide Burp with details of a custom tab that will 16 | * be added to Burp's UI, using a method such as 17 | * IBurpExtenderCallbacks.addSuiteTab(). 18 | */ 19 | public interface ITab 20 | { 21 | /** 22 | * Burp uses this method to obtain the caption that should appear on the 23 | * custom tab when it is displayed. 24 | * 25 | * @return The caption that should appear on the custom tab when it is 26 | * displayed. 27 | */ 28 | String getTabCaption(); 29 | 30 | /** 31 | * Burp uses this method to obtain the component that should be used as the 32 | * contents of the custom tab when it is displayed. 33 | * 34 | * @return The component that should be used as the contents of the custom 35 | * tab when it is displayed. 36 | */ 37 | Component getUiComponent(); 38 | } 39 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IMenuItemHandler.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IMenuItemHandler.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 | * IBurpExtenderCallbacks.registerMenuItem() to register a custom 15 | * context menu item. 16 | * 17 | * @deprecated Use 18 | * IContextMenuFactory instead. 19 | */ 20 | @Deprecated 21 | public interface IMenuItemHandler 22 | { 23 | /** 24 | * This method is invoked by Burp Suite when the user clicks on a custom 25 | * menu item which the extension has registered with Burp. 26 | * 27 | * @param menuItemCaption The caption of the menu item which was clicked. 28 | * This parameter enables extensions to provide a single implementation 29 | * which handles multiple different menu items. 30 | * @param messageInfo Details of the HTTP message(s) for which the context 31 | * menu was displayed. 32 | */ 33 | void menuItemClicked( 34 | String menuItemCaption, 35 | IHttpRequestResponse[] messageInfo); 36 | } 37 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IProxyListener.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IProxyListener.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 | * IBurpExtenderCallbacks.registerProxyListener() to register a 15 | * Proxy listener. The listener will be notified of requests and responses being 16 | * processed by the Proxy tool. Extensions can perform custom analysis or 17 | * modification of these messages, and control in-UI message interception, by 18 | * registering a proxy listener. 19 | */ 20 | public interface IProxyListener 21 | { 22 | /** 23 | * This method is invoked when an HTTP message is being processed by the 24 | * Proxy. 25 | * 26 | * @param messageIsRequest Indicates whether the HTTP message is a request 27 | * or a response. 28 | * @param message An 29 | * IInterceptedProxyMessage object that extensions can use to 30 | * query and update details of the message, and control whether the message 31 | * should be intercepted and displayed to the user for manual review or 32 | * modification. 33 | */ 34 | void processProxyMessage( 35 | boolean messageIsRequest, 36 | IInterceptedProxyMessage message); 37 | } 38 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IContextMenuFactory.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IContextMenuFactory.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 | import javax.swing.JMenuItem; 14 | 15 | /** 16 | * Extensions can implement this interface and then call 17 | * IBurpExtenderCallbacks.registerContextMenuFactory() to register 18 | * a factory for custom context menu items. 19 | */ 20 | public interface IContextMenuFactory 21 | { 22 | /** 23 | * This method will be called by Burp when the user invokes a context menu 24 | * anywhere within Burp. The factory can then provide any custom context 25 | * menu items that should be displayed in the context menu, based on the 26 | * details of the menu invocation. 27 | * 28 | * @param invocation An object that implements the 29 | * IMessageEditorTabFactory interface, which the extension can 30 | * query to obtain details of the context menu invocation. 31 | * @return A list of custom menu items (which may include sub-menus, 32 | * checkbox menu items, etc.) that should be displayed. Extensions may 33 | * return 34 | * null from this method, to indicate that no menu items are 35 | * required. 36 | */ 37 | List createMenuItems(IContextMenuInvocation invocation); 38 | } 39 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IScannerInsertionPointProvider.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IScannerInsertionPointProvider.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 | * Extensions can implement this interface and then call 16 | * IBurpExtenderCallbacks.registerScannerInsertionPointProvider() 17 | * to register a factory for custom Scanner insertion points. 18 | */ 19 | public interface IScannerInsertionPointProvider 20 | { 21 | /** 22 | * When a request is actively scanned, the Scanner will invoke this method, 23 | * and the provider should provide a list of custom insertion points that 24 | * will be used in the scan. Note: these insertion points are used in 25 | * addition to those that are derived from Burp Scanner's configuration, and 26 | * those provided by any other Burp extensions. 27 | * 28 | * @param baseRequestResponse The base request that will be actively 29 | * scanned. 30 | * @return A list of 31 | * IScannerInsertionPoint objects that should be used in the 32 | * scanning, or 33 | * null if no custom insertion points are applicable for this 34 | * request. 35 | */ 36 | List getInsertionPoints( 37 | IHttpRequestResponse baseRequestResponse); 38 | } 39 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IIntruderPayloadGeneratorFactory.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IIntruderPayloadGeneratorFactory.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 | * IBurpExtenderCallbacks.registerIntruderPayloadGeneratorFactory() 15 | * to register a factory for custom Intruder payloads. 16 | */ 17 | public interface IIntruderPayloadGeneratorFactory 18 | { 19 | /** 20 | * This method is used by Burp to obtain the name of the payload generator. 21 | * This will be displayed as an option within the Intruder UI when the user 22 | * selects to use extension-generated payloads. 23 | * 24 | * @return The name of the payload generator. 25 | */ 26 | String getGeneratorName(); 27 | 28 | /** 29 | * This method is used by Burp when the user starts an Intruder attack that 30 | * uses this payload generator. 31 | * 32 | * @param attack An 33 | * IIntruderAttack object that can be queried to obtain details 34 | * about the attack in which the payload generator will be used. 35 | * @return A new instance of 36 | * IIntruderPayloadGenerator that will be used to generate 37 | * payloads for the attack. 38 | */ 39 | IIntruderPayloadGenerator createNewInstance(IIntruderAttack attack); 40 | } 41 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IHttpListener.java: -------------------------------------------------------------------------------- 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 | * IBurpExtenderCallbacks.registerHttpListener() 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 | * IBurpExtenderCallbacks 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 | } 38 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IMessageEditorTabFactory.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IMessageEditorTabFactory.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 | * IBurpExtenderCallbacks.registerMessageEditorTabFactory() to 15 | * register a factory for custom message editor tabs. This allows extensions to 16 | * provide custom rendering or editing of HTTP messages, within Burp's own HTTP 17 | * editor. 18 | */ 19 | public interface IMessageEditorTabFactory 20 | { 21 | /** 22 | * Burp will call this method once for each HTTP message editor, and the 23 | * factory should provide a new instance of an 24 | * IMessageEditorTab object. 25 | * 26 | * @param controller An 27 | * IMessageEditorController object, which the new tab can query 28 | * to retrieve details about the currently displayed message. This may be 29 | * null for extension-invoked message editors where the 30 | * extension has not provided an editor controller. 31 | * @param editable Indicates whether the hosting editor is editable or 32 | * read-only. 33 | * @return A new 34 | * IMessageEditorTab object for use within the message editor. 35 | */ 36 | IMessageEditorTab createNewInstance(IMessageEditorController controller, 37 | boolean editable); 38 | } 39 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/SnifferContextMenuFactory.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | import org.apache.commons.io.FileUtils; 4 | 5 | import javax.swing.*; 6 | import java.awt.event.ActionEvent; 7 | import java.awt.event.ActionListener; 8 | import java.io.File; 9 | import java.io.IOException; 10 | import java.util.ArrayList; 11 | import java.util.List; 12 | 13 | /** 14 | * Created by wm on 2014/9/24. 15 | */ 16 | public class SnifferContextMenuFactory implements IContextMenuFactory { 17 | 18 | IExtensionHelpers helpers; 19 | 20 | public SnifferContextMenuFactory(IExtensionHelpers helpers){ 21 | this.helpers = helpers; 22 | } 23 | 24 | 25 | @Override 26 | public List createMenuItems(final IContextMenuInvocation invocation) { 27 | List list = new ArrayList(); 28 | JMenuItem jMenuItem = new JMenuItem("send to Sqlmap"); 29 | list.add(jMenuItem); 30 | jMenuItem.addActionListener(new ActionListener() { 31 | @Override 32 | public void actionPerformed(ActionEvent e) { 33 | IHttpRequestResponse[] messages = invocation.getSelectedMessages(); 34 | byte[] req = messages[0].getRequest(); 35 | File file = new File(Context.getTempReqName(true)); 36 | try { 37 | FileUtils.writeByteArrayToFile(file,req); 38 | } catch (IOException e1) { 39 | e1.printStackTrace(); 40 | } 41 | System.out.println("sent to sqlMap"); 42 | new Thread(new SqlmapStarter()).start(); 43 | 44 | } 45 | }); 46 | return list; 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/ICookie.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)ICookie.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.Date; 13 | 14 | /** 15 | * This interface is used to hold details about an HTTP cookie. 16 | */ 17 | public interface ICookie 18 | { 19 | /** 20 | * This method is used to retrieve the domain for which the cookie is in 21 | * scope. 22 | * 23 | * @return The domain for which the cookie is in scope. Note: For 24 | * cookies that have been analyzed from responses (by calling 25 | * IExtensionHelpers.analyzeResponse() and then 26 | * IResponseInfo.getCookies(), the domain will be 27 | * null if the response did not explicitly set a domain 28 | * attribute for the cookie. 29 | */ 30 | String getDomain(); 31 | 32 | /** 33 | * This method is used to retrieve the expiration time for the cookie. 34 | * 35 | * @return The expiration time for the cookie, or 36 | * null if none is set (i.e., for non-persistent session 37 | * cookies). 38 | */ 39 | Date getExpiration(); 40 | 41 | /** 42 | * This method is used to retrieve the name of the cookie. 43 | * 44 | * @return The name of the cookie. 45 | */ 46 | String getName(); 47 | 48 | /** 49 | * This method is used to retrieve the value of the cookie. 50 | * @return The value of the cookie. 51 | */ 52 | String getValue(); 53 | } 54 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IIntruderPayloadProcessor.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IIntruderPayloadProcessor.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 | * IBurpExtenderCallbacks.registerIntruderPayloadProcessor() to 15 | * register a custom Intruder payload processor. 16 | */ 17 | public interface IIntruderPayloadProcessor 18 | { 19 | /** 20 | * This method is used by Burp to obtain the name of the payload processor. 21 | * This will be displayed as an option within the Intruder UI when the user 22 | * selects to use an extension-provided payload processor. 23 | * 24 | * @return The name of the payload processor. 25 | */ 26 | String getProcessorName(); 27 | 28 | /** 29 | * This method is invoked by Burp each time the processor should be applied 30 | * to an Intruder payload. 31 | * 32 | * @param currentPayload The value of the payload to be processed. 33 | * @param originalPayload The value of the original payload prior to 34 | * processing by any already-applied processing rules. 35 | * @param baseValue The base value of the payload position, which will be 36 | * replaced with the current payload. 37 | * @return The value of the processed payload. This may be 38 | * null to indicate that the current payload should be skipped, 39 | * and the attack will move directly to the next payload. 40 | */ 41 | byte[] processPayload( 42 | byte[] currentPayload, 43 | byte[] originalPayload, 44 | byte[] baseValue); 45 | } 46 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IHttpRequestResponseWithMarkers.java: -------------------------------------------------------------------------------- 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 | * IHttpRequestResponse object that has had markers applied. 17 | * Extensions can create instances of this interface using 18 | * IBurpExtenderCallbacks.applyMarkers(), 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 | * null if no request markers are defined. 32 | */ 33 | List 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 | * null if no response markers are defined. 42 | */ 43 | List getResponseMarkers(); 44 | } 45 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IIntruderPayloadGenerator.java: -------------------------------------------------------------------------------- 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 | * IIntruderPayloadGeneratorFactory 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 | * false when all the available payloads have been used up, 26 | * otherwise 27 | * true. 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 | * null 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 | * getNextPayload() 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 | } 51 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IMessageEditorController.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IMessageEditorController.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 by an 14 | * IMessageEditor to obtain details about the currently displayed 15 | * message. Extensions that create instances of Burp's HTTP message editor can 16 | * optionally provide an implementation of 17 | * IMessageEditorController, which the editor will invoke when it 18 | * requires further information about the current message (for example, to send 19 | * it to another Burp tool). Extensions that provide custom editor tabs via an 20 | * IMessageEditorTabFactory will receive a reference to an 21 | * IMessageEditorController object for each tab instance they 22 | * generate, which the tab can invoke if it requires further information about 23 | * the current message. 24 | */ 25 | public interface IMessageEditorController 26 | { 27 | /** 28 | * This method is used to retrieve the HTTP service for the current message. 29 | * 30 | * @return The HTTP service for the current message. 31 | */ 32 | IHttpService getHttpService(); 33 | 34 | /** 35 | * This method is used to retrieve the HTTP request associated with the 36 | * current message (which may itself be a response). 37 | * 38 | * @return The HTTP request associated with the current message. 39 | */ 40 | byte[] getRequest(); 41 | 42 | /** 43 | * This method is used to retrieve the HTTP response associated with the 44 | * current message (which may itself be a request). 45 | * 46 | * @return The HTTP response associated with the current message. 47 | */ 48 | byte[] getResponse(); 49 | } 50 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/SqlmapStarter.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | import org.apache.commons.io.FileUtils; 4 | import org.apache.commons.lang3.StringUtils; 5 | 6 | import java.io.BufferedReader; 7 | import java.io.File; 8 | import java.io.IOException; 9 | import java.io.InputStreamReader; 10 | import java.util.Properties; 11 | 12 | /** 13 | * Created by wm on 2014/9/25. 14 | */ 15 | public class SqlmapStarter implements Runnable { 16 | 17 | 18 | @Override 19 | public void run() { 20 | try { 21 | StringBuilder sb = new StringBuilder(); 22 | sb.append("sqlmap.py -r " + Context.getTempReqName(false)); 23 | if (StringUtils.isNoneBlank(Context.userConfig)) { 24 | sb.append(" " + Context.userConfig); 25 | } 26 | File batFile = new File(Context.getTempBatName(true)); 27 | if (!batFile.exists()) { 28 | batFile.createNewFile(); 29 | } 30 | FileUtils.writeByteArrayToFile(batFile, sb.toString().getBytes()); 31 | boolean isWindows= EnvUtil.isWindows(); 32 | String command="/bin/sh " + Context.getTempBatName(false); 33 | if(isWindows){ 34 | command="cmd /c start " + Context.getTempBatName(false); 35 | } 36 | System.out.println("use command: " + command); 37 | Process process = Runtime.getRuntime().exec(command); 38 | InputStreamReader ir = new 39 | InputStreamReader(process.getInputStream()); 40 | BufferedReader input = new BufferedReader (ir); 41 | String line; 42 | while ((line = input.readLine()) != null) { 43 | System.out.println(line); 44 | } 45 | System.out.println("**----sqlMap finish!!!----**"); 46 | } catch (IOException e) { 47 | e.printStackTrace(); 48 | } 49 | 50 | } 51 | 52 | public static void main(String[] args) { 53 | // new Thread(new SqlmapStarter()).start(); 54 | Properties properties = System.getProperties(); 55 | System.out.println(properties.get("java.io.tmpdir")); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IMessageEditor.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IMessageEditor.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.awt.Component; 13 | 14 | /** 15 | * This interface is used to provide extensions with an instance of Burp's HTTP 16 | * message editor, for the extension to use in its own UI. Extensions should 17 | * call 18 | * IBurpExtenderCallbacks.createMessageEditor() to obtain an 19 | * instance of this interface. 20 | */ 21 | public interface IMessageEditor 22 | { 23 | /** 24 | * This method returns the UI component of the editor, for extensions to add 25 | * to their own UI. 26 | * 27 | * @return The UI component of the editor. 28 | */ 29 | Component getComponent(); 30 | 31 | /** 32 | * This method is used to display an HTTP message in the editor. 33 | * 34 | * @param message The HTTP message to be displayed. 35 | * @param isRequest Flags whether the message is an HTTP request or 36 | * response. 37 | */ 38 | void setMessage(byte[] message, boolean isRequest); 39 | 40 | /** 41 | * This method is used to retrieve the currently displayed message, which 42 | * may have been modified by the user. 43 | * 44 | * @return The currently displayed HTTP message. 45 | */ 46 | byte[] getMessage(); 47 | 48 | /** 49 | * This method is used to determine whether the current message has been 50 | * modified by the user. 51 | * 52 | * @return An indication of whether the current message has been modified by 53 | * the user since it was first displayed. 54 | */ 55 | boolean isMessageModified(); 56 | 57 | /** 58 | * This method returns the data that is currently selected by the user. 59 | * 60 | * @return The data that is currently selected by the user, or 61 | * null if no selection is made. 62 | */ 63 | byte[] getSelectedData(); 64 | } 65 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/BurpExtender.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | import javax.swing.*; 4 | import java.awt.*; 5 | import java.awt.event.ActionEvent; 6 | import java.awt.event.ActionListener; 7 | 8 | /** 9 | * Author: latershow 10 | * Date: 14-8-23 11 | * Time: 下午4:53 12 | */ 13 | public class BurpExtender implements IBurpExtender, ITab, IHttpListener { 14 | 15 | private IExtensionHelpers helpers; 16 | private JPanel mainPanel; 17 | 18 | @Override 19 | public void registerExtenderCallbacks(final IBurpExtenderCallbacks callbacks) { 20 | this.helpers = callbacks.getHelpers(); 21 | 22 | callbacks.registerContextMenuFactory(new SnifferContextMenuFactory(this.helpers)); 23 | 24 | callbacks.setExtensionName("Sqlmap"); 25 | callbacks.registerHttpListener(this); 26 | SwingUtilities.invokeLater(new Runnable() { 27 | public void run() { 28 | mainPanel = new JPanel(); 29 | final JTextArea config = new JTextArea(); 30 | config.setRows(10); 31 | config.setColumns(100); 32 | final JButton submit = new JButton("save"); 33 | mainPanel.add(config); 34 | mainPanel.add(submit); 35 | callbacks.customizeUiComponent(submit); 36 | callbacks.customizeUiComponent(config); 37 | callbacks.customizeUiComponent(mainPanel); 38 | callbacks.addSuiteTab(BurpExtender.this); 39 | submit.addActionListener(new ActionListener() { 40 | @Override 41 | public void actionPerformed(ActionEvent e) { 42 | Context.userConfig = config.getText(); 43 | submit.setText("saved..."); 44 | } 45 | }); 46 | } 47 | }); 48 | } 49 | 50 | @Override 51 | public void processHttpMessage(int toolFlag, boolean messageIsRequest, IHttpRequestResponse messageInfo) { 52 | 53 | } 54 | 55 | @Override 56 | public String getTabCaption() { 57 | return "Sqlmap"; 58 | } 59 | 60 | @Override 61 | public Component getUiComponent() { 62 | return mainPanel; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/ISessionHandlingAction.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)ISessionHandlingAction.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 | * IBurpExtenderCallbacks.registerSessionHandlingAction() to 15 | * register a custom session handling action. Each registered action will be 16 | * available within the session handling rule UI for the user to select as a 17 | * rule action. Users can choose to invoke an action directly in its own right, 18 | * or following execution of a macro. 19 | */ 20 | public interface ISessionHandlingAction 21 | { 22 | /** 23 | * This method is used by Burp to obtain the name of the session handling 24 | * action. This will be displayed as an option within the session handling 25 | * rule editor when the user selects to execute an extension-provided 26 | * action. 27 | * 28 | * @return The name of the action. 29 | */ 30 | String getActionName(); 31 | 32 | /** 33 | * This method is invoked when the session handling action should be 34 | * executed. This may happen as an action in its own right, or as a 35 | * sub-action following execution of a macro. 36 | * 37 | * @param currentRequest The base request that is currently being processed. 38 | * The action can query this object to obtain details about the base 39 | * request. It can issue additional requests of its own if necessary, and 40 | * can use the setter methods on this object to update the base request. 41 | * @param macroItems If the action is invoked following execution of a 42 | * macro, this parameter contains the result of executing the macro. 43 | * Otherwise, it is 44 | * null. Actions can use the details of the macro items to 45 | * perform custom analysis of the macro to derive values of non-standard 46 | * session handling tokens, etc. 47 | */ 48 | void performAction( 49 | IHttpRequestResponse currentRequest, 50 | IHttpRequestResponse[] macroItems); 51 | } 52 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IResponseInfo.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IResponseInfo.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 to retrieve key details about an HTTP response. 16 | * Extensions can obtain an 17 | * IResponseInfo object for a given response by calling 18 | * IExtensionHelpers.analyzeResponse(). 19 | */ 20 | public interface IResponseInfo 21 | { 22 | /** 23 | * This method is used to obtain the HTTP headers contained in the response. 24 | * 25 | * @return The HTTP headers contained in the response. 26 | */ 27 | List getHeaders(); 28 | 29 | /** 30 | * This method is used to obtain the offset within the response where the 31 | * message body begins. 32 | * 33 | * @return The offset within the response where the message body begins. 34 | */ 35 | int getBodyOffset(); 36 | 37 | /** 38 | * This method is used to obtain the HTTP status code contained in the 39 | * response. 40 | * 41 | * @return The HTTP status code contained in the response. 42 | */ 43 | short getStatusCode(); 44 | 45 | /** 46 | * This method is used to obtain details of the HTTP cookies set in the 47 | * response. 48 | * 49 | * @return A list of ICookie objects representing the cookies 50 | * set in the response, if any. 51 | */ 52 | List getCookies(); 53 | 54 | /** 55 | * This method is used to obtain the MIME type of the response, as stated in 56 | * the HTTP headers. 57 | * 58 | * @return A textual label for the stated MIME type, or an empty String if 59 | * this is not known or recognized. The possible labels are the same as 60 | * those used in the main Burp UI. 61 | */ 62 | String getStatedMimeType(); 63 | 64 | /** 65 | * This method is used to obtain the MIME type of the response, as inferred 66 | * from the contents of the HTTP message body. 67 | * 68 | * @return A textual label for the inferred MIME type, or an empty String if 69 | * this is not known or recognized. The possible labels are the same as 70 | * those used in the main Burp UI. 71 | */ 72 | String getInferredMimeType(); 73 | } 74 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IScanQueueItem.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IScanQueueItem.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 details of items in the Burp Scanner 14 | * active scan queue. Extensions can obtain references to scan queue items by 15 | * calling 16 | * IBurpExtenderCallbacks.doActiveScan(). 17 | */ 18 | public interface IScanQueueItem 19 | { 20 | /** 21 | * This method returns a description of the status of the scan queue item. 22 | * 23 | * @return A description of the status of the scan queue item. 24 | */ 25 | String getStatus(); 26 | 27 | /** 28 | * This method returns an indication of the percentage completed for the 29 | * scan queue item. 30 | * 31 | * @return An indication of the percentage completed for the scan queue 32 | * item. 33 | */ 34 | byte getPercentageComplete(); 35 | 36 | /** 37 | * This method returns the number of requests that have been made for the 38 | * scan queue item. 39 | * 40 | * @return The number of requests that have been made for the scan queue 41 | * item. 42 | */ 43 | int getNumRequests(); 44 | 45 | /** 46 | * This method returns the number of network errors that have occurred for 47 | * the scan queue item. 48 | * 49 | * @return The number of network errors that have occurred for the scan 50 | * queue item. 51 | */ 52 | int getNumErrors(); 53 | 54 | /** 55 | * This method returns the number of attack insertion points being used for 56 | * the scan queue item. 57 | * 58 | * @return The number of attack insertion points being used for the scan 59 | * queue item. 60 | */ 61 | int getNumInsertionPoints(); 62 | 63 | /** 64 | * This method allows the scan queue item to be canceled. 65 | */ 66 | void cancel(); 67 | 68 | /** 69 | * This method returns details of the issues generated for the scan queue 70 | * item. Note: different items within the scan queue may contain 71 | * duplicated versions of the same issues - for example, if the same request 72 | * has been scanned multiple times. Duplicated issues are consolidated in 73 | * the main view of scan results. Extensions can register an 74 | * IScannerListener to get details only of unique, newly 75 | * discovered Scanner issues post-consolidation. 76 | * 77 | * @return Details of the issues generated for the scan queue item. 78 | */ 79 | IScanIssue[] getIssues(); 80 | } 81 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IRequestInfo.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IRequestInfo.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.URL; 13 | import java.util.List; 14 | 15 | /** 16 | * This interface is used to retrieve key details about an HTTP request. 17 | * Extensions can obtain an 18 | * IRequestInfo object for a given request by calling 19 | * IExtensionHelpers.analyzeRequest(). 20 | */ 21 | public interface IRequestInfo 22 | { 23 | /** 24 | * Used to indicate that there is no content. 25 | */ 26 | static final byte CONTENT_TYPE_NONE = 0; 27 | /** 28 | * Used to indicate URL-encoded content. 29 | */ 30 | static final byte CONTENT_TYPE_URL_ENCODED = 1; 31 | /** 32 | * Used to indicate multi-part content. 33 | */ 34 | static final byte CONTENT_TYPE_MULTIPART = 2; 35 | /** 36 | * Used to indicate XML content. 37 | */ 38 | static final byte CONTENT_TYPE_XML = 3; 39 | /** 40 | * Used to indicate JSON content. 41 | */ 42 | static final byte CONTENT_TYPE_JSON = 4; 43 | /** 44 | * Used to indicate AMF content. 45 | */ 46 | static final byte CONTENT_TYPE_AMF = 5; 47 | /** 48 | * Used to indicate unknown content. 49 | */ 50 | static final byte CONTENT_TYPE_UNKNOWN = -1; 51 | 52 | /** 53 | * This method is used to obtain the HTTP method used in the request. 54 | * 55 | * @return The HTTP method used in the request. 56 | */ 57 | String getMethod(); 58 | 59 | /** 60 | * This method is used to obtain the URL in the request. 61 | * 62 | * @return The URL in the request. 63 | */ 64 | URL getUrl(); 65 | 66 | /** 67 | * This method is used to obtain the HTTP headers contained in the request. 68 | * 69 | * @return The HTTP headers contained in the request. 70 | */ 71 | List getHeaders(); 72 | 73 | /** 74 | * This method is used to obtain the parameters contained in the request. 75 | * 76 | * @return The parameters contained in the request. 77 | */ 78 | List getParameters(); 79 | 80 | /** 81 | * This method is used to obtain the offset within the request where the 82 | * message body begins. 83 | * 84 | * @return The offset within the request where the message body begins. 85 | */ 86 | int getBodyOffset(); 87 | 88 | /** 89 | * This method is used to obtain the content type of the message body. 90 | * 91 | * @return An indication of the content type of the message body. Available 92 | * types are defined within this interface. 93 | */ 94 | byte getContentType(); 95 | } 96 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/ITextEditor.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)ITextEditor.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.awt.Component; 13 | 14 | /** 15 | * This interface is used to provide extensions with an instance of Burp's raw 16 | * text editor, for the extension to use in its own UI. Extensions should call 17 | * IBurpExtenderCallbacks.createTextEditor() to obtain an instance 18 | * of this interface. 19 | */ 20 | public interface ITextEditor 21 | { 22 | /** 23 | * This method returns the UI component of the editor, for extensions to add 24 | * to their own UI. 25 | * 26 | * @return The UI component of the editor. 27 | */ 28 | Component getComponent(); 29 | 30 | /** 31 | * This method is used to control whether the editor is currently editable. 32 | * This status can be toggled on and off as required. 33 | * 34 | * @param editable Indicates whether the editor should be currently 35 | * editable. 36 | */ 37 | void setEditable(boolean editable); 38 | 39 | /** 40 | * This method is used to update the currently displayed text in the editor. 41 | * 42 | * @param text The text to be displayed. 43 | */ 44 | void setText(byte[] text); 45 | 46 | /** 47 | * This method is used to retrieve the currently displayed text. 48 | * 49 | * @return The currently displayed text. 50 | */ 51 | byte[] getText(); 52 | 53 | /** 54 | * This method is used to determine whether the user has modified the 55 | * contents of the editor. 56 | * 57 | * @return An indication of whether the user has modified the contents of 58 | * the editor since the last call to 59 | * setText(). 60 | */ 61 | boolean isTextModified(); 62 | 63 | /** 64 | * This method is used to obtain the currently selected text. 65 | * 66 | * @return The currently selected text, or 67 | * null if the user has not made any selection. 68 | */ 69 | byte[] getSelectedText(); 70 | 71 | /** 72 | * This method can be used to retrieve the bounds of the user's selection 73 | * into the displayed text, if applicable. 74 | * 75 | * @return An int[2] array containing the start and end offsets of the 76 | * user's selection within the displayed text. If the user has not made any 77 | * selection in the current message, both offsets indicate the position of 78 | * the caret within the editor. 79 | */ 80 | int[] getSelectionBounds(); 81 | 82 | /** 83 | * This method is used to update the search expression that is shown in the 84 | * search bar below the editor. The editor will automatically highlight any 85 | * regions of the displayed text that match the search expression. 86 | * 87 | * @param expression The search expression. 88 | */ 89 | void setSearchExpression(String expression); 90 | } 91 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IHttpRequestResponse.java: -------------------------------------------------------------------------------- 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 | * Note: 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 | * IHttpService 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 | * IHttpService object containing details of the new HTTP 98 | * service. 99 | */ 100 | void setHttpService(IHttpService httpService); 101 | 102 | } 103 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IParameter.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IParameter.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 HTTP request parameter. 14 | */ 15 | public interface IParameter 16 | { 17 | /** 18 | * Used to indicate a parameter within the URL query string. 19 | */ 20 | static final byte PARAM_URL = 0; 21 | /** 22 | * Used to indicate a parameter within the message body. 23 | */ 24 | static final byte PARAM_BODY = 1; 25 | /** 26 | * Used to indicate an HTTP cookie. 27 | */ 28 | static final byte PARAM_COOKIE = 2; 29 | /** 30 | * Used to indicate an item of data within an XML structure. 31 | */ 32 | static final byte PARAM_XML = 3; 33 | /** 34 | * Used to indicate the value of a tag attribute within an XML structure. 35 | */ 36 | static final byte PARAM_XML_ATTR = 4; 37 | /** 38 | * Used to indicate the value of a parameter attribute within a multi-part 39 | * message body (such as the name of an uploaded file). 40 | */ 41 | static final byte PARAM_MULTIPART_ATTR = 5; 42 | /** 43 | * Used to indicate an item of data within a JSON structure. 44 | */ 45 | static final byte PARAM_JSON = 6; 46 | 47 | /** 48 | * This method is used to retrieve the parameter type. 49 | * 50 | * @return The parameter type. The available types are defined within this 51 | * interface. 52 | */ 53 | byte getType(); 54 | 55 | /** 56 | * This method is used to retrieve the parameter name. 57 | * 58 | * @return The parameter name. 59 | */ 60 | String getName(); 61 | 62 | /** 63 | * This method is used to retrieve the parameter value. 64 | * 65 | * @return The parameter value. 66 | */ 67 | String getValue(); 68 | 69 | /** 70 | * This method is used to retrieve the start offset of the parameter name 71 | * within the HTTP request. 72 | * 73 | * @return The start offset of the parameter name within the HTTP request, 74 | * or -1 if the parameter is not associated with a specific request. 75 | */ 76 | int getNameStart(); 77 | 78 | /** 79 | * This method is used to retrieve the end offset of the parameter name 80 | * within the HTTP request. 81 | * 82 | * @return The end offset of the parameter name within the HTTP request, or 83 | * -1 if the parameter is not associated with a specific request. 84 | */ 85 | int getNameEnd(); 86 | 87 | /** 88 | * This method is used to retrieve the start offset of the parameter value 89 | * within the HTTP request. 90 | * 91 | * @return The start offset of the parameter value within the HTTP request, 92 | * or -1 if the parameter is not associated with a specific request. 93 | */ 94 | int getValueStart(); 95 | 96 | /** 97 | * This method is used to retrieve the end offset of the parameter value 98 | * within the HTTP request. 99 | * 100 | * @return The end offset of the parameter value within the HTTP request, or 101 | * -1 if the parameter is not associated with a specific request. 102 | */ 103 | int getValueEnd(); 104 | } 105 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IScannerCheck.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IScannerCheck.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 | * Extensions can implement this interface and then call 16 | * IBurpExtenderCallbacks.registerScannerCheck() to register a 17 | * custom Scanner check. When performing scanning, Burp will ask the check to 18 | * perform active or passive scanning on the base request, and report any 19 | * Scanner issues that are identified. 20 | */ 21 | public interface IScannerCheck 22 | { 23 | 24 | /** 25 | * The Scanner invokes this method for each base request / response that is 26 | * passively scanned. Note: Extensions should not only analyze the 27 | * HTTP messages provided during passive scanning, and should not make any 28 | * new HTTP requests of their own. 29 | * 30 | * @param baseRequestResponse The base HTTP request / response that should 31 | * be passively scanned. 32 | * @return A list of IScanIssue objects, or null 33 | * if no issues are identified. 34 | */ 35 | List doPassiveScan(IHttpRequestResponse baseRequestResponse); 36 | 37 | /** 38 | * The Scanner invokes this method for each insertion point that is actively 39 | * scanned. Extensions may issue HTTP requests as required to carry out 40 | * active scanning, and should use the 41 | * IScannerInsertionPoint object provided to build scan 42 | * requests for particular payloads. 43 | * Note: 44 | * Scan checks should submit raw non-encoded payloads to insertion points, 45 | * and the insertion point has responsibility for performing any data 46 | * encoding that is necessary given the nature and location of the insertion 47 | * point. 48 | * 49 | * @param baseRequestResponse The base HTTP request / response that should 50 | * be actively scanned. 51 | * @param insertionPoint An IScannerInsertionPoint object that 52 | * can be queried to obtain details of the insertion point being tested, and 53 | * can be used to build scan requests for particular payloads. 54 | * @return A list of IScanIssue objects, or null 55 | * if no issues are identified. 56 | */ 57 | List doActiveScan( 58 | IHttpRequestResponse baseRequestResponse, 59 | IScannerInsertionPoint insertionPoint); 60 | 61 | /** 62 | * The Scanner invokes this method when the custom Scanner check has 63 | * reported multiple issues for the same URL path. This can arise either 64 | * because there are multiple distinct vulnerabilities, or because the same 65 | * (or a similar) request has been scanned more than once. The custom check 66 | * should determine whether the issues are duplicates. In most cases, where 67 | * a check uses distinct issue names or descriptions for distinct issues, 68 | * the consolidation process will simply be a matter of comparing these 69 | * features for the two issues. 70 | * 71 | * @param existingIssue An issue that was previously reported by this 72 | * Scanner check. 73 | * @param newIssue An issue at the same URL path that has been newly 74 | * reported by this Scanner check. 75 | * @return An indication of which issue(s) should be reported in the main 76 | * Scanner results. The method should return -1 to report the 77 | * existing issue only, 0 to report both issues, and 78 | * 1 to report the new issue only. 79 | */ 80 | int consolidateDuplicateIssues( 81 | IScanIssue existingIssue, 82 | IScanIssue newIssue); 83 | } 84 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IMessageEditorTab.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IMessageEditorTab.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.awt.Component; 13 | 14 | /** 15 | * Extensions that register an 16 | * IMessageEditorTabFactory must return instances of this 17 | * interface, which Burp will use to create custom tabs within its HTTP message 18 | * editors. 19 | */ 20 | public interface IMessageEditorTab 21 | { 22 | /** 23 | * This method returns the caption that should appear on the custom tab when 24 | * it is displayed. Note: Burp invokes this method once when the tab 25 | * is first generated, and the same caption will be used every time the tab 26 | * is displayed. 27 | * 28 | * @return The caption that should appear on the custom tab when it is 29 | * displayed. 30 | */ 31 | String getTabCaption(); 32 | 33 | /** 34 | * This method returns the component that should be used as the contents of 35 | * the custom tab when it is displayed. Note: Burp invokes this 36 | * method once when the tab is first generated, and the same component will 37 | * be used every time the tab is displayed. 38 | * 39 | * @return The component that should be used as the contents of the custom 40 | * tab when it is displayed. 41 | */ 42 | Component getUiComponent(); 43 | 44 | /** 45 | * The hosting editor will invoke this method before it displays a new HTTP 46 | * message, so that the custom tab can indicate whether it should be enabled 47 | * for that message. 48 | * 49 | * @param content The message that is about to be displayed. 50 | * @param isRequest Indicates whether the message is a request or a 51 | * response. 52 | * @return The method should return 53 | * true if the custom tab is able to handle the specified 54 | * message, and so will be displayed within the editor. Otherwise, the tab 55 | * will be hidden while this message is displayed. 56 | */ 57 | boolean isEnabled(byte[] content, boolean isRequest); 58 | 59 | /** 60 | * The hosting editor will invoke this method to display a new message or to 61 | * clear the existing message. This method will only be called with a new 62 | * message if the tab has already returned 63 | * true to a call to 64 | * isEnabled() with the same message details. 65 | * 66 | * @param content The message that is to be displayed, or 67 | * null if the tab should clear its contents and disable any 68 | * editable controls. 69 | * @param isRequest Indicates whether the message is a request or a 70 | * response. 71 | */ 72 | void setMessage(byte[] content, boolean isRequest); 73 | 74 | /** 75 | * This method returns the currently displayed message. 76 | * 77 | * @return The currently displayed message. 78 | */ 79 | byte[] getMessage(); 80 | 81 | /** 82 | * This method is used to determine whether the currently displayed message 83 | * has been modified by the user. The hosting editor will always call 84 | * getMessage() before calling this method, so any pending 85 | * edits should be completed within 86 | * getMessage(). 87 | * 88 | * @return The method should return 89 | * true if the user has modified the current message since it 90 | * was first displayed. 91 | */ 92 | boolean isModified(); 93 | 94 | /** 95 | * This method is used to retrieve the data that is currently selected by 96 | * the user. 97 | * 98 | * @return The data that is currently selected by the user. This may be 99 | * null if no selection is currently made. 100 | */ 101 | byte[] getSelectedData(); 102 | } 103 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IScanIssue.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IScanIssue.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 details of Scanner issues. Extensions can 14 | * obtain details of issues by registering an 15 | * IScannerListener or by calling 16 | * IBurpExtenderCallbacks.getScanIssues(). Extensions can also add 17 | * custom Scanner issues by registering an 18 | * IScannerCheck or calling 19 | * IBurpExtenderCallbacks.addScanIssue(), and providing their own 20 | * implementations of this interface 21 | */ 22 | public interface IScanIssue 23 | { 24 | /** 25 | * This method returns the URL for which the issue was generated. 26 | * 27 | * @return The URL for which the issue was generated. 28 | */ 29 | java.net.URL getUrl(); 30 | 31 | /** 32 | * This method returns the name of the issue type. 33 | * 34 | * @return The name of the issue type (e.g. "SQL injection"). 35 | */ 36 | String getIssueName(); 37 | 38 | /** 39 | * This method returns a numeric identifier of the issue type. See the Burp 40 | * Scanner help documentation for a listing of all the issue types. 41 | * 42 | * @return A numeric identifier of the issue type. 43 | */ 44 | int getIssueType(); 45 | 46 | /** 47 | * This method returns the issue severity level. 48 | * 49 | * @return The issue severity level. Expected values are "High", "Medium", 50 | * "Low", "Information" or "False positive". 51 | * 52 | */ 53 | String getSeverity(); 54 | 55 | /** 56 | * This method returns the issue confidence level. 57 | * 58 | * @return The issue confidence level. Expected values are "Certain", "Firm" 59 | * or "Tentative". 60 | */ 61 | String getConfidence(); 62 | 63 | /** 64 | * This method returns a background description for this type of issue. 65 | * 66 | * @return A background description for this type of issue, or 67 | * null if none applies. 68 | */ 69 | String getIssueBackground(); 70 | 71 | /** 72 | * This method returns a background description of the remediation for this 73 | * type of issue. 74 | * 75 | * @return A background description of the remediation for this type of 76 | * issue, or 77 | * null if none applies. 78 | */ 79 | String getRemediationBackground(); 80 | 81 | /** 82 | * This method returns detailed information about this specific instance of 83 | * the issue. 84 | * 85 | * @return Detailed information about this specific instance of the issue, 86 | * or 87 | * null if none applies. 88 | */ 89 | String getIssueDetail(); 90 | 91 | /** 92 | * This method returns detailed information about the remediation for this 93 | * specific instance of the issue. 94 | * 95 | * @return Detailed information about the remediation for this specific 96 | * instance of the issue, or 97 | * null if none applies. 98 | */ 99 | String getRemediationDetail(); 100 | 101 | /** 102 | * This method returns the HTTP messages on the basis of which the issue was 103 | * generated. 104 | * 105 | * @return The HTTP messages on the basis of which the issue was generated. 106 | * Note: The items in this array should be instances of 107 | * IHttpRequestResponseWithMarkers if applicable, so that 108 | * details of the relevant portions of the request and response messages are 109 | * available. 110 | */ 111 | IHttpRequestResponse[] getHttpMessages(); 112 | 113 | /** 114 | * This method returns the HTTP service for which the issue was generated. 115 | * 116 | * @return The HTTP service for which the issue was generated. 117 | */ 118 | IHttpService getHttpService(); 119 | 120 | } 121 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IInterceptedProxyMessage.java: -------------------------------------------------------------------------------- 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 | * IProxyListener 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 IHttpRequestResponse 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 | * ACTION_FOLLOW_RULES. 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 | } 117 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IScannerInsertionPoint.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IScannerInsertionPoint.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 define an insertion point for use by active Scanner 14 | * checks. Extensions can obtain instances of this interface by registering an 15 | * IScannerCheck, or can create instances for use by Burp's own 16 | * scan checks by registering an 17 | * IScannerInsertionPointProvider. 18 | */ 19 | public interface IScannerInsertionPoint 20 | { 21 | 22 | /** 23 | * Used to indicate where the payload is inserted into the value of a URL 24 | * parameter. 25 | */ 26 | static final byte INS_PARAM_URL = 0x00; 27 | /** 28 | * Used to indicate where the payload is inserted into the value of a body 29 | * parameter. 30 | */ 31 | static final byte INS_PARAM_BODY = 0x01; 32 | /** 33 | * Used to indicate where the payload is inserted into the value of an HTTP 34 | * cookie. 35 | */ 36 | static final byte INS_PARAM_COOKIE = 0x02; 37 | /** 38 | * Used to indicate where the payload is inserted into the value of an item 39 | * of data within an XML data structure. 40 | */ 41 | static final byte INS_PARAM_XML = 0x03; 42 | /** 43 | * Used to indicate where the payload is inserted into the value of a tag 44 | * attribute within an XML structure. 45 | */ 46 | static final byte INS_PARAM_XML_ATTR = 0x04; 47 | /** 48 | * Used to indicate where the payload is inserted into the value of a 49 | * parameter attribute within a multi-part message body (such as the name of 50 | * an uploaded file). 51 | */ 52 | static final byte INS_PARAM_MULTIPART_ATTR = 0x05; 53 | /** 54 | * Used to indicate where the payload is inserted into the value of an item 55 | * of data within a JSON structure. 56 | */ 57 | static final byte INS_PARAM_JSON = 0x06; 58 | /** 59 | * Used to indicate where the payload is inserted into the value of an AMF 60 | * parameter. 61 | */ 62 | static final byte INS_PARAM_AMF = 0x07; 63 | /** 64 | * Used to indicate where the payload is inserted into the value of an HTTP 65 | * request header. 66 | */ 67 | static final byte INS_HEADER = 0x20; 68 | /** 69 | * Used to indicate where the payload is inserted into a REST parameter 70 | * within the URL file path. 71 | */ 72 | static final byte INS_URL_REST = 0x21; 73 | /** 74 | * Used to indicate where the payload is inserted into the name of an added 75 | * URL parameter. 76 | */ 77 | static final byte INS_PARAM_NAME_URL = 0x22; 78 | /** 79 | * Used to indicate where the payload is inserted into the name of an added 80 | * body parameter. 81 | */ 82 | static final byte INS_PARAM_NAME_BODY = 0x23; 83 | /** 84 | * Used to indicate where the payload is inserted at a location manually 85 | * configured by the user. 86 | */ 87 | static final byte INS_USER_PROVIDED = 0x40; 88 | /** 89 | * Used to indicate where the insertion point is provided by an 90 | * extension-registered 91 | * IScannerInsertionPointProvider. 92 | */ 93 | static final byte INS_EXTENSION_PROVIDED = 0x41; 94 | /** 95 | * Used to indicate where the payload is inserted at an unknown location 96 | * within the request. 97 | */ 98 | static final byte INS_UNKNOWN = 0x7f; 99 | 100 | /** 101 | * This method returns the name of the insertion point. 102 | * 103 | * @return The name of the insertion point (for example, a description of a 104 | * particular request parameter). 105 | */ 106 | String getInsertionPointName(); 107 | 108 | /** 109 | * This method returns the base value for this insertion point. 110 | * 111 | * @return the base value that appears in this insertion point in the base 112 | * request being scanned, or null if there is no value in the 113 | * base request that corresponds to this insertion point. 114 | */ 115 | String getBaseValue(); 116 | 117 | /** 118 | * This method is used to build a request with the specified payload placed 119 | * into the insertion point. There is no requirement for extension-provided 120 | * insertion points to adjust the Content-Length header in requests if the 121 | * body length has changed, although Burp-provided insertion points will 122 | * always do this and will return a request with a valid Content-Length 123 | * header. 124 | * Note: 125 | * Scan checks should submit raw non-encoded payloads to insertion points, 126 | * and the insertion point has responsibility for performing any data 127 | * encoding that is necessary given the nature and location of the insertion 128 | * point. 129 | * 130 | * @param payload The payload that should be placed into the insertion 131 | * point. 132 | * @return The resulting request. 133 | */ 134 | byte[] buildRequest(byte[] payload); 135 | 136 | /** 137 | * This method is used to determine the offsets of the payload value within 138 | * the request, when it is placed into the insertion point. Scan checks may 139 | * invoke this method when reporting issues, so as to highlight the relevant 140 | * part of the request within the UI. 141 | * 142 | * @param payload The payload that should be placed into the insertion 143 | * point. 144 | * @return An int[2] array containing the start and end offsets of the 145 | * payload within the request, or null if this is not applicable (for 146 | * example, where the insertion point places a payload into a serialized 147 | * data structure, the raw payload may not literally appear anywhere within 148 | * the resulting request). 149 | */ 150 | int[] getPayloadOffsets(byte[] payload); 151 | 152 | /** 153 | * This method returns the type of the insertion point. 154 | * 155 | * @return The type of the insertion point. Available types are defined in 156 | * this interface. 157 | */ 158 | byte getInsertionPointType(); 159 | } 160 | -------------------------------------------------------------------------------- /burp_sqlmap/src/burp/IContextMenuInvocation.java: -------------------------------------------------------------------------------- 1 | package burp; 2 | 3 | /* 4 | * @(#)IContextMenuInvocation.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.awt.event.InputEvent; 13 | 14 | /** 15 | * This interface is used when Burp calls into an extension-provided 16 | * IContextMenuFactory with details of a context menu invocation. 17 | * The custom context menu factory can query this interface to obtain details of 18 | * the invocation event, in order to determine what menu items should be 19 | * displayed. 20 | */ 21 | public interface IContextMenuInvocation 22 | { 23 | /** 24 | * Used to indicate that the context menu is being invoked in a request 25 | * editor. 26 | */ 27 | static final byte CONTEXT_MESSAGE_EDITOR_REQUEST = 0; 28 | /** 29 | * Used to indicate that the context menu is being invoked in a response 30 | * editor. 31 | */ 32 | static final byte CONTEXT_MESSAGE_EDITOR_RESPONSE = 1; 33 | /** 34 | * Used to indicate that the context menu is being invoked in a non-editable 35 | * request viewer. 36 | */ 37 | static final byte CONTEXT_MESSAGE_VIEWER_REQUEST = 2; 38 | /** 39 | * Used to indicate that the context menu is being invoked in a non-editable 40 | * response viewer. 41 | */ 42 | static final byte CONTEXT_MESSAGE_VIEWER_RESPONSE = 3; 43 | /** 44 | * Used to indicate that the context menu is being invoked in the Target 45 | * site map tree. 46 | */ 47 | static final byte CONTEXT_TARGET_SITE_MAP_TREE = 4; 48 | /** 49 | * Used to indicate that the context menu is being invoked in the Target 50 | * site map table. 51 | */ 52 | static final byte CONTEXT_TARGET_SITE_MAP_TABLE = 5; 53 | /** 54 | * Used to indicate that the context menu is being invoked in the Proxy 55 | * history. 56 | */ 57 | static final byte CONTEXT_PROXY_HISTORY = 6; 58 | /** 59 | * Used to indicate that the context menu is being invoked in the Scanner 60 | * results. 61 | */ 62 | static final byte CONTEXT_SCANNER_RESULTS = 7; 63 | /** 64 | * Used to indicate that the context menu is being invoked in the Intruder 65 | * payload positions editor. 66 | */ 67 | static final byte CONTEXT_INTRUDER_PAYLOAD_POSITIONS = 8; 68 | /** 69 | * Used to indicate that the context menu is being invoked in an Intruder 70 | * attack results. 71 | */ 72 | static final byte CONTEXT_INTRUDER_ATTACK_RESULTS = 9; 73 | /** 74 | * Used to indicate that the context menu is being invoked in a search 75 | * results window. 76 | */ 77 | static final byte CONTEXT_SEARCH_RESULTS = 10; 78 | 79 | /** 80 | * This method can be used to retrieve the native Java input event that was 81 | * the trigger for the context menu invocation. 82 | * 83 | * @return The InputEvent that was the trigger for the context 84 | * menu invocation. 85 | */ 86 | InputEvent getInputEvent(); 87 | 88 | /** 89 | * This method can be used to retrieve the Burp tool within which the 90 | * context menu was invoked. 91 | * 92 | * @return A flag indicating the Burp tool within which the context menu was 93 | * invoked. Burp tool flags are defined in the 94 | * IBurpExtenderCallbacks interface. 95 | */ 96 | int getToolFlag(); 97 | 98 | /** 99 | * This method can be used to retrieve the context within which the menu was 100 | * invoked. 101 | * 102 | * @return An index indicating the context within which the menu was 103 | * invoked. The indices used are defined within this interface. 104 | */ 105 | byte getInvocationContext(); 106 | 107 | /** 108 | * This method can be used to retrieve the bounds of the user's selection 109 | * into the current message, if applicable. 110 | * 111 | * @return An int[2] array containing the start and end offsets of the 112 | * user's selection in the current message. If the user has not made any 113 | * selection in the current message, both offsets indicate the position of 114 | * the caret within the editor. If the menu is not being invoked from a 115 | * message editor, the method returns null. 116 | */ 117 | int[] getSelectionBounds(); 118 | 119 | /** 120 | * This method can be used to retrieve details of the HTTP requests / 121 | * responses that were shown or selected by the user when the context menu 122 | * was invoked. 123 | * 124 | * Note: For performance reasons, the objects returned from this 125 | * method are tied to the originating context of the messages within the 126 | * Burp UI. For example, if a context menu is invoked on the Proxy intercept 127 | * panel, then the 128 | * IHttpRequestResponse returned by this method will reflect 129 | * the current contents of the interception panel, and this will change when 130 | * the current message has been forwarded or dropped. If your extension 131 | * needs to store details of the message for which the context menu has been 132 | * invoked, then you should query those details from the 133 | * IHttpRequestResponse at the time of invocation, or you 134 | * should use 135 | * IBurpExtenderCallbacks.saveBuffersToTempFiles() to create a 136 | * persistent read-only copy of the 137 | * IHttpRequestResponse. 138 | * 139 | * @return An array of IHttpRequestResponse objects 140 | * representing the items that were shown or selected by the user when the 141 | * context menu was invoked. This method returns null if no 142 | * messages are applicable to the invocation. 143 | */ 144 | IHttpRequestResponse[] getSelectedMessages(); 145 | 146 | /** 147 | * This method can be used to retrieve details of the Scanner issues that 148 | * were selected by the user when the context menu was invoked. 149 | * 150 | * @return An array of IScanIssue objects representing the 151 | * issues that were selected by the user when the context menu was invoked. 152 | * This method returns null if no Scanner issues are applicable 153 | * to the invocation. 154 | */ 155 | IScanIssue[] getSelectedIssues(); 156 | } 157 | -------------------------------------------------------------------------------- /burp_sqlmap/.idea/workspace.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 17 | 18 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 40 | 41 | 42 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 |