(int toolFlag,boolean messageIsRequest,IHttpRequestResponse messageInfo)
| 116 | } |
| 117 | |
| 118 | @Override |
| 119 | public void processHttpMessage(int toolFlag,boolean messageIsRequest,IHttpRequestResponse messageInfo) |
| 120 | { |
| 121 | if (toolFlag == (toolFlag&checkEnabledFor())){ //不同的toolflag代表了不同的burp组件 https://portswigger.net/burp/extender/api/constant-values.html#burp.IBurpExtenderCallbacks |
| 122 | if (messageIsRequest){ //对请求包进行处理 |
| 123 | stdout.println("Origin Request:"); |
| 124 | stdout.println(new String(messageInfo.getRequest())); |
| 125 | stdout.println("\r\n"); |
| 126 | IRequestInfo analyzeRequest = helpers.analyzeRequest(messageInfo); //对消息体进行解析 |
| 127 | byte getSignParaType = getSignParaType(analyzeRequest); |
| 128 | |
| 129 | //*******************recalculate sign**************************// |
| 130 | if (getHost(analyzeRequest).equals(getHostFromUI()) && getSignParaType !=-1){//检查图形面板上的各种参数,都齐备了才进行。 |
| 131 | byte[] new_Request = messageInfo.getRequest(); |
| 132 | String str = combineString(getUpdatedParaBaseOnTable(analyzeRequest),getOnlyValueConfig(),getParaConnector()); |
| 133 | //stdout.println("Combined String:"+str); |
| 134 | String newSign = calcSign(str); |
| 135 | //stdout.println("New Sign:"+newSign); //输出到extender的UI窗口,可以让使用者有一些判断 |
| 136 | //更新参数 |
| 137 | IParameter newPara = helpers.buildParameter(signPara, newSign, getSignParaType); //构造新的参数,如果参数是PARAM_JSON类型,这个方法是不适用的 |
| 138 | new_Request = helpers.updateParameter(new_Request, newPara); //构造新的请求包,这里是方法一updateParameter |
| 139 | messageInfo.setRequest(new_Request);//设置最终新的请求包 |
| 140 | stdout.println("Changed Request:"); |
| 141 | stdout.println(new String(messageInfo.getRequest())); |
| 142 | stdout.print("\r\n"); |
| 143 | //to verify the updated result |
| 144 | // for (IParameter para : helpers.analyzeRequest(messageInfo).getParameters()){ |
| 145 | // stdout.println(para.getValue()); |
| 146 | // } |
| 147 | |
| 148 | } |
| 149 | } |
| 150 | } |
| 151 | } |
| 152 | |
| 153 | |
| 154 | public void CGUI() { |
nothing calls this directly
no test coverage detected