/******************* * Debug logging method. * * @param msg A message to log. ******************/ protected void dbgLog(String msg) { PrintWriter pw = new PrintWriter(_callbacks.getStdout(), true); pw.println(msg); }
@Override protected void print(String message) { try { if (message.contains("ERROR:")) { //Not the most elegant way, but should be effective. callbacks.issueAlert(message); } callbacks.getStdout().write(message.getBytes()); callbacks.getStdout().write('\n'); } catch (IOException e) { System.err.println("Error while printing the log : " + e.getMessage()); //Very unlikely } } });
public InteractionServer(IBurpExtenderCallbacks callbacks, HashMap<String,IHttpRequestResponsePersisted> processedRequestResponse, IBurpCollaboratorClientContext initialCollaboratorContext) { this.callbacks = callbacks; this.processedRequestResponse = processedRequestResponse; // Initialize stdout and stderr this.stdout = new PrintWriter(callbacks.getStdout(), true); this.stderr = new PrintWriter(callbacks.getStderr(), true); this.collaboratorContextList = new ArrayList<IBurpCollaboratorClientContext>(); if(initialCollaboratorContext != null) { this.collaboratorContextList.add(initialCollaboratorContext); } else { stdout.println("Collaborator disabled"); } this.goOn = true; }
public Utilities(final IBurpExtenderCallbacks incallbacks) { callbacks = incallbacks; helpers = callbacks.getHelpers(); stdout = new PrintWriter(callbacks.getStdout(), true); stderr = new PrintWriter(callbacks.getStderr(), true); }
public Utilities(final IBurpExtenderCallbacks incallbacks) { callbacks = incallbacks; stdout = new PrintWriter(callbacks.getStdout(), true); stderr = new PrintWriter(callbacks.getStderr(), true); globalSettings = new ConfigurableSettings(); helpers = callbacks.getHelpers(); Integer[] to_throttle = {IBurpExtenderCallbacks.TOOL_TARGET, IBurpExtenderCallbacks.TOOL_SPIDER, IBurpExtenderCallbacks.TOOL_SCANNER, IBurpExtenderCallbacks.TOOL_INTRUDER, IBurpExtenderCallbacks.TOOL_SEQUENCER, IBurpExtenderCallbacks.TOOL_EXTENDER}; Collections.addAll(THROTTLED_COMPONENTS, to_throttle); }
Utilities(final IBurpExtenderCallbacks incallbacks) { callbacks = incallbacks; stdout = new PrintWriter(callbacks.getStdout(), true); stderr = new PrintWriter(callbacks.getStderr(), true); helpers = callbacks.getHelpers(); globalSettings = new ConfigurableSettings(); globalSettings.printSettings(); Scanner s = new Scanner(getClass().getResourceAsStream("/functions")); while (s.hasNext()) { phpFunctions.add(s.next()); } s.close(); Scanner params = new Scanner(getClass().getResourceAsStream("/params")); while (params.hasNext()) { paramNames.add(params.next()); } params.close(); Scanner headers = new Scanner(getClass().getResourceAsStream("/boring_headers")); while (headers.hasNext()) { boringHeaders.add(headers.next().toLowerCase()); } }
Utilities(final IBurpExtenderCallbacks incallbacks) { callbacks = incallbacks; stdout = new PrintWriter(callbacks.getStdout(), true); stderr = new PrintWriter(callbacks.getStderr(), true); helpers = callbacks.getHelpers(); globalSettings = new ConfigurableSettings(); globalSettings.printSettings(); Scanner s = new Scanner(getClass().getResourceAsStream("/functions")); while (s.hasNext()) { phpFunctions.add(s.next()); } s.close(); Scanner params = new Scanner(getClass().getResourceAsStream("/params")); while (params.hasNext()) { paramNames.add(params.next()); } params.close(); badChars.add('%'); badChars.add('\u0000'); badChars.add('&'); badChars.add('#'); badChars.add(';'); badChars.add(' '); badChars.add('+'); }
@Override public void registerExtenderCallbacks(final IBurpExtenderCallbacks callbacks) { // keep a reference to our callbacks object this.callbacks = callbacks; // obtain an extension helpers object helpers = callbacks.getHelpers(); // obtain our output stream stdout = new PrintWriter(callbacks.getStdout(), true); stderr = new PrintWriter(callbacks.getStderr(), true); // set our extension name callbacks.setExtensionName("J2EE Advanced Tests"); stdout.println("J2EEscan plugin loaded. "); stdout.println("Extended security checks for J2EE applications"); stdout.println("https://github.com/ilmila/J2EEScan"); try { List<String> m = getClassNamesFromPackage("burp.j2ee.issues.impl."); stdout.println(String.format("\nLoaded %s J2EE extended tests\n\n", m.size())); } catch (IOException ex) { stderr.println(ex); } // register ourselves as a custom scanner check callbacks.registerScannerCheck(this); }
@Override public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks) { stdout = new PrintWriter(callbacks.getStdout(), true); stdout.println(ExtenderName); stdout.println(github); this.callbacks = callbacks; helpers = callbacks.getHelpers(); callbacks.setExtensionName(ExtenderName); //插件名称 //callbacks.registerHttpListener(this); //如果没有注册,下面的processHttpMessage方法是不会生效的。处理请求和响应包的插件,这个应该是必要的 callbacks.registerContextMenuFactory(this); callbacks.registerIntruderPayloadGeneratorFactory(this); callbacks.addSuiteTab(BurpExtender.this); }
public void registerExtenderCallbacks (IBurpExtenderCallbacks callbacks) { // keep a reference to our callbacks object this.callbacks = callbacks; // obtain an extension helpers object this.helpers = callbacks.getHelpers(); // set our extension name this.callbacks.setExtensionName("Burplay"); // context menu callbacks.registerContextMenuFactory(this); // stdout / stderr OutputStream stdOut = callbacks.getStdout(); OutputStream stdErr = callbacks.getStderr(); printStream = new PrintStream(stdOut); errorStream = new PrintStream(stdErr); Properties properties = new Properties(); try { properties.load(this.getClass().getResourceAsStream("/Burplay.properties")); version = "v." + properties.getProperty("version"); } catch (Exception e) { version = ""; } // welcome message log(String.format("Burplay %s\nMichal Talecki <mtalecki@trustwave.com>", version)); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { setUI(); } }); }
@Override public void registerExtenderCallbacks(final IBurpExtenderCallbacks callbacks) { this.helpers = callbacks.getHelpers(); PrintWriter stdout = new PrintWriter(callbacks.getStdout(), true); stdout.println("== Reissue Request Scripter plugin =="); stdout.println("Plugin that generate script to reproduce a specific HTTP request."); stdout.println(" - Github : https://github.com/h3xstream/http-script-generator"); stdout.println(""); stdout.println("== License =="); stdout.println("Reissue Request Scripter Burp plugin is release under LGPL."); stdout.println(""); Log.setLogger(new Log.Logger() { @Override protected void print(String message) { try { if (message.contains("ERROR:")) { //Not the most elegant way, but should be effective. callbacks.issueAlert(message); } callbacks.getStdout().write(message.getBytes()); callbacks.getStdout().write('\n'); } catch (IOException e) { System.err.println("Error while printing the log : " + e.getMessage()); //Very unlikely } } }); Log.DEBUG(); //Register context menu callbacks.registerContextMenuFactory(this); callbacks.setExtensionName(ReissueRequestScripterConstants.PLUGIN_NAME); }
@Override public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks) {//当加载插件的时候,会调用下面的方法。 stdout = new PrintWriter(callbacks.getStdout(), true); //PrintWriter stdout = new PrintWriter(callbacks.getStdout(), true); 这种写法是定义变量和实例化,这里的变量就是新的变量而不是之前class中的全局变量了。 stdout.println(extenderName+" https://github.com/bit4woo\r\n"); //System.out.println("test"); 不会输出到burp的 this.callbacks = callbacks; helpers = callbacks.getHelpers(); callbacks.setExtensionName(extenderName); //插件名称 callbacks.registerHttpListener(this); //如果没有注册,下面的processHttpMessage方法是不会生效的。处理请求和响应包的插件,这个应该是必要的 callbacks.registerContextMenuFactory(this); addMenuTab(); }
public void registerExtenderCallbacks(final IBurpExtenderCallbacks callbacks) { this.callbacks = callbacks; this.helpers = callbacks.getHelpers(); this.callbacks.setExtensionName("CSP Auditor"); PrintWriter stdout = new PrintWriter(callbacks.getStdout(), true); stdout.println("== CSP Auditor plugin =="); stdout.println("This plugin provided a readable view of CSP headers in Response Tab. "); stdout.println("It also include Passive scan rules to detect weak CSP configuration."); stdout.println(" - Github : https://github.com/GoSecure/csp-auditor"); stdout.println(""); stdout.println("== License =="); stdout.println("CSP Auditor plugin is release under LGPL."); stdout.println(""); Log.setLogger(new Log.Logger() { @Override protected void print(String message) { try { callbacks.getStdout().write(message.getBytes()); callbacks.getStdout().write('\n'); } catch (IOException e) { System.err.println("Error while printing the log : " + e.getMessage()); //Very unlikely } } }); Log.DEBUG(); this.callbacks.registerMessageEditorTabFactory(this); scanner = new CspHeaderScanner(helpers); this.callbacks.registerScannerCheck(scanner); this.callbacks.addSuiteTab(new ConfigurationHelperTab(this.callbacks)); }
@Override public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks) { stdout = new PrintWriter(callbacks.getStdout(), true); stderr = new PrintWriter(callbacks.getStderr(), true); stdout.println(ExtenderName); stdout.println(github); this.callbacks = callbacks; helpers = callbacks.getHelpers(); callbacks.setExtensionName(ExtenderName); // callbacks.registerExtensionStateListener(this); callbacks.registerContextMenuFactory(this); addMenuTab(); //recovery save domain results from extensionSetting String content = callbacks.loadExtensionSetting("content"); if (content!=null) { domainResult = domainResult.Open(content); showToUI(domainResult); } }
public boolean isFullDuplicate(IHttpRequestResponse messageInfo) { PrintWriter stdout = new PrintWriter(callbacks.getStdout(), true); IResponseInfo respInfo = helpers.analyzeResponse(messageInfo.getResponse()); if (dubBloomFilter == null) return false; HashFunction m_hash = Hashing.murmur3_32(); if (helpers.bytesToString(messageInfo.getResponse()).length() > respInfo.getBodyOffset()) { String body = helpers.bytesToString(messageInfo.getResponse()).substring(respInfo.getBodyOffset()); /* full-dub detection */ String dedupHashValue = m_hash.hashBytes(helpers.stringToBytes(body)).toString(); if (dubBloomFilter.mightContain(dedupHashValue)) { return true; } dubBloomFilter.put(dedupHashValue); } return false; }
@Override public void registerExtenderCallbacks(final IBurpExtenderCallbacks callbacks) { helpers = callbacks.getHelpers(); this.pw = new PrintWriter(callbacks.getStdout(), true); setupTab(); callbacks.setExtensionName("AWS Signer"); callbacks.registerContextMenuFactory(new Menu()); SwingUtilities.invokeLater(() -> { callbacks.customizeUiComponent(panel); callbacks.addSuiteTab(BurpExtender.this); callbacks.registerHttpListener(BurpExtender.this); }); }
@Override public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks) { this.callbacks = callbacks; this.helpers = callbacks.getHelpers(); this.stdout = new PrintWriter(callbacks.getStdout(), true); this.stderr = new PrintWriter(callbacks.getStderr(), true); this.getter = new Getter(helpers); this.callbacks.setExtensionName(this.ExtensionName); this.callbacks.registerContextMenuFactory(this);// for menus this.callbacks.registerMessageEditorTabFactory(this);// for U2C this.callbacks.addSuiteTab(BurpExtender.this); this.callbacks.registerHttpListener(this); this.stdout.println(ExtensionName); this.stdout.println(github); String content = callbacks.loadExtensionSetting("knifeconfig"); if (content!=null) { config = JSON.parseObject(content, ConfigObject.class); showToUI(config); }else { showToUI(new ConfigObject("default")); } }
@Override public void processProxyMessage(boolean messageIsRequest, IInterceptedProxyMessage message) { PrintWriter stdout = new PrintWriter(callbacks.getStdout(), true); if (!messageIsRequest) { return; } IHttpRequestResponse messageInfo = message.getMessageInfo(); IRequestInfo requestInfo = callbacks.getHelpers().analyzeRequest(messageInfo.getHttpService(), messageInfo.getRequest()); for (String host : extConfig.getProxyDomainBlacklist()) { if (requestInfo.getUrl() == null || requestInfo.getUrl().getHost() == null) { message.setInterceptAction(IInterceptedProxyMessage.ACTION_DROP); // stdout.println("Proxy dropped: " + requestInfo.getUrl().toString()); return; } if (host.equals(requestInfo.getUrl().getHost())) { message.setInterceptAction(IInterceptedProxyMessage.ACTION_DROP); // stdout.println("Proxy dropped: " + requestInfo.getUrl().toString()); return; } } // stdout.println("Proxied: " + requestInfo.getUrl().toString()); } }
@Override public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks) { this.callbacks = callbacks; PrintWriter stdout = new PrintWriter(callbacks.getStdout(), true); stdout.println("JWT4B says hi!"); callbacks.setExtensionName(Settings.extensionName); callbacks.registerMessageEditorTabFactory(this); final HighLightController marker = new HighLightController(callbacks); callbacks.registerHttpListener(marker); // Suite Tab JWTSuiteTabModel jwtSTM = new JWTSuiteTabModel(); JWTSuiteTab jwtST = new JWTSuiteTab(jwtSTM); JWTSuiteTabController jstC = new JWTSuiteTabController(jwtSTM, jwtST); callbacks.addSuiteTab(jstC); // Context Menu ContextMenuController cmC = new ContextMenuController(jstC); callbacks.registerContextMenuFactory(cmC); }