@Override public String toString() { try { return json.getString("description"); } catch(Exception ex) { ex.printStackTrace(new PrintStream(BurpExtender.callbacks.getStderr())); return ""; } }
@Override public void run() { try { runMacro(macro, replicatorPanel); } catch(Exception ex) { ex.printStackTrace(new PrintStream(BurpExtender.callbacks.getStderr())); } }
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; }
MacrosMarshaller() { try { String json = BurpExtender.callbacks.saveConfigAsJson("project_options.sessions.macros"); root = new JSONObject(new JSONTokener(json)); macros = root.getJSONObject("project_options") .getJSONObject("sessions") .getJSONObject("macros") .getJSONArray("macros"); } catch(JSONException ex) { ex.printStackTrace(new PrintWriter(BurpExtender.callbacks.getStderr())); } }
void setHost(String host, int port) { try { url = new URL(url.getProtocol(), host, port, url.getPath()); } catch (MalformedURLException ex) { ex.printStackTrace(new PrintWriter(BurpExtender.callbacks.getStderr())); } request = Utils.changeHost(request, host, port); clearStatus(); }
private JSONArray marshallIssueTableModel(IssueTableModel issueTableModel) { JSONArray rc = new JSONArray(); for(Issue issue : issueTableModel.issues) { try { rc.put(marshallIssue(issue)); } catch(Exception ex) { warnings.add(ex.toString()); ex.printStackTrace(new PrintStream(BurpExtender.callbacks.getStderr())); } } return rc; }
public Utilities(final IBurpExtenderCallbacks incallbacks) { callbacks = incallbacks; helpers = callbacks.getHelpers(); stdout = new PrintWriter(callbacks.getStdout(), true); stderr = new PrintWriter(callbacks.getStderr(), true); }
void unmarshallIssueTableModel(IssueTableModel issueTableModel, JSONArray data) throws JSONException { issueTableModel.issues = new ArrayList<Issue>(); for(int i = 0; i < data.length(); i++) { try { issueTableModel.addIssue(unmarshallIssue(data.getJSONObject(i))); } catch(Exception ex) { warnings.add(ex.toString()); ex.printStackTrace(new PrintStream(BurpExtender.callbacks.getStderr())); } } issueTableModel.fireTableDataChanged(); }
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); }
@Override protected void done() { super.done(); try { this.get(); listener.done(null); } catch (InterruptedException e) { listener.setStatus("Interrupted Exception: " + e.getMessage()); e.printStackTrace(new PrintStream(callbacks.getStderr())); } catch (ExecutionException e) { listener.setStatus("Execution Exception: " + e.getMessage()); e.printStackTrace(new PrintStream(callbacks.getStderr())); } catch (Throwable e) { listener.setStatus(e.getMessage()); e.printStackTrace(new PrintStream(callbacks.getStderr())); } }
SessionRulesMarshaller() { try { String json = BurpExtender.callbacks.saveConfigAsJson("target.scope"); targetScope = new JSONObject(new JSONTokener(json)) .getJSONObject("target") .getJSONObject("scope"); json = BurpExtender.callbacks.saveConfigAsJson("project_options.sessions.session_handling_rules"); root = new JSONObject(new JSONTokener(json)); sessionHandlingRules = root.getJSONObject("project_options") .getJSONObject("sessions") .getJSONObject("session_handling_rules") .getJSONArray("rules"); for (int i = 0; i < sessionHandlingRules.length(); i++) { rules.add(new Rule(sessionHandlingRules.getJSONObject(i))); } } catch(JSONException ex) { ex.printStackTrace(new PrintStream(BurpExtender.callbacks.getStderr())); } }
private void jLabelLogoMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabelLogoMouseClicked if(replicatorPanel.viewType != BurpExtender.TESTER_VIEW) { return; } JFileChooser fc = new JFileChooser(); fc.setFileFilter(new FileNameExtensionFilter("PNG Images", "png")); fc.setDialogTitle("Select a logo"); if(fc.showOpenDialog(this) != JFileChooser.APPROVE_OPTION) { return; } try { setLogo(new FileInputStream(fc.getSelectedFile())); BurpExtender.callbacks.saveExtensionSetting("logo", fc.getSelectedFile().toString()); } catch(Exception ex) { ex.printStackTrace(new PrintStream(BurpExtender.callbacks.getStderr())); JOptionPane.showMessageDialog(this, ex.toString(), BurpExtender.name, JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_jLabelLogoMouseClicked
void loadMacros() { String prevLoginMacro = loginMacro; jComboBoxLoginMacro.removeAllItems(); jComboBoxLoginMacro.addItem(" "); try { for(String macro : new MacrosMarshaller().getMacroNames()) { jComboBoxLoginMacro.addItem(macro); } setLoginMacro(prevLoginMacro); } catch(Exception ex) { ex.printStackTrace(new PrintStream(BurpExtender.callbacks.getStderr())); } }
private void runAllRequests(){ try{ // Clear responses clearTable(responseTableModel); prepareHeader(); for(int i=0; i<requestTable.getRowCount(); i++){ runRequest(getRequestObjectByRow(requestTable, i)); } } catch(Throwable e){ PrintWriter writer = new PrintWriter(burpCallback.getStderr()); writer.write(e.getMessage()); writer.write("\n"); e.printStackTrace(writer); } }
private void jButtonLoginActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonLoginActionPerformed try { MacrosMarshaller.Macro macro = new MacrosMarshaller().getMacroByName(getLoginMacro()); new Thread(new MacroRunner(macro, replicatorPanel)).start(); replicatorPanel.loggedIn = true; } catch(Exception ex) { ex.printStackTrace(new PrintStream(BurpExtender.callbacks.getStderr())); JOptionPane.showMessageDialog(this, ex.toString(), BurpExtender.name, JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_jButtonLoginActionPerformed
private void runRequest(IHttpRequestResponse req) { try { byte[] rawRequest = req.getRequest(); IRequestInfo reqInfo = burpCallback.getHelpers().analyzeRequest(rawRequest); // header of request should be a string List<String> headers = reqInfo.getHeaders(); for(int h=0; h<headers.size(); h++){ if(headers.get(h).toLowerCase().startsWith(headerName)){ headers.set(h, newHeader); break; } } byte message[] = burpCallback.getHelpers().buildHttpMessage(headers, Arrays.copyOfRange(rawRequest, reqInfo.getBodyOffset(), rawRequest.length)); IHttpRequestResponse resp = burpCallback.makeHttpRequest(req.getHttpService(), message); addResponse(req, resp); } catch (Throwable e) { PrintWriter writer = new PrintWriter(burpCallback.getStderr()); writer.write(e.getMessage()); writer.write("\n"); e.printStackTrace(writer); } }
@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); } }
private void jComboBoxLoginMacroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBoxLoginMacroActionPerformed try { String macroName = getLoginMacro(); if(macroName == null) { return; } MacrosMarshaller.Macro macro = new MacrosMarshaller().getMacroByName(macroName); if(macro == null) { return; } JSONObject loginSessionRule = SessionRulesMarshaller.genereateLoginSessionRule(macro.getSerial(), macro.getURL()); new SessionRulesMarshaller().setProjectSessionRule(loginSessionRule); } catch(Exception ex) { ex.printStackTrace(new PrintStream(BurpExtender.callbacks.getStderr())); JOptionPane.showMessageDialog(this, ex.toString(), BurpExtender.name, JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_jComboBoxLoginMacroActionPerformed
public Issue(IHttpRequestResponse request) { this.request = request.getRequest(); this.response = request.getResponse(); try { IRequestInfo requestInfo = BurpExtender.callbacks.getHelpers().analyzeRequest(request.getHttpService(), request.getRequest()); SessionRulesMarshaller sessionHandlingRules = new SessionRulesMarshaller(); this.sessionHandlingRules = sessionHandlingRules.getRulesForRequest(requestInfo); url = requestInfo.getUrl(); path = url.getPath(); } catch(Exception ex) { ex.printStackTrace(new PrintStream(BurpExtender.callbacks.getStderr())); } }
@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")); } }