------------恢復內容開始------------
burpsuite插件詳細詳細資料
我自己一開始學的時候是先看的gitbook資料,然后看官方案例,后來結合最后那篇文章一起學習,再最后就是直接寫,不懂的地方再直接看官方文檔。因為不需要用到全部API,我也沒有全部看完,熟悉了一點之后就直接上手寫了。
部分API使用方法
-
IBurpExtenderCallbacks 可以調用很多其他的組件的方法比如
callbacks.getHelpers() 獲取IExtensionHelpers對象 callbacks.getStdout() 獲取標准輸出流 callbacks.setExtensionName() 設置插件名字 IHttpRequestResponse makeHttpRequest(IHttpService httpService,byte[] request) 新建一個Request請求
還有很多,是各個組件的樞紐一樣,具體可以看官方文檔。
-
IHttpRequestResponce此接口用於檢索和更新有關HTTP消息的詳細信息。可以重寫processHttpMessage來對各個模塊的流量進行操做,監聽。
具體常用方法有:getRequest() 返回byte[]類型Request內容 getResponce() 返回byte[]類型Responce內容 getHttpService() 返回一個IHttpService
-
IExtensionHelpers 這個接口包含了很多實用的方法,可以用上文方法調用。具體常用方法:
1、IRequestInfo analyzeRequest(byte[] request) 獲取到一個IRequestInfo方法 2、IResponseInfo analyzeResponse(byte[] response) 獲取到一個IResponseInfo方法 3、 byte[] stringToBytes(java.lang.String data)、java.lang.String bytesToString(byte[] data) byte和String類型的相互轉化 4、 IParameter buildParameter(java.lang.String name,java.lang.String value,byte type) 新建一個IParameter byte[] updateParameter(byte[] request,IParameter parameter) 在request請求里面更新請求參數,兩者配合使用
-
IParameter 參數接口,可以包含request請求里面get,post的請求參數,值,還有cookie的參數,值。具體方法:
1、byte getType() 可以獲取一個標志信息,判斷屬於哪部分的參數,比如是cookie的還是get的還是post的,標志信息可以看官方文檔 2、java.lang.String getName() 獲取參數名字 3、java.lang.String getValue() 獲取參數的值
-
IRequestInfo 這個接口可以獲取到request請求里面的詳細信息
1、java.lang.String getMethod() 獲取請求的方法 2、java.net.URL getUrl() 獲取url 3、java.util.List<IParameter> getParameters() 獲取所有的請求參數 4、int getBodyOffset() 獲取request里面body的移位量 比如:(message為IHttpRequestResponce類型,BodyInt是位移量) helpers.bytesToString(Arrays.copyOfRange(message.getResponse(),BodyInt,message.getResponse().length)) 可以獲取到String類型的body
-
IResponseInfo 可以獲取到response請求里面的詳細信息和IRequestInfo 差不多。
最后是自己練手寫的插件
可以簡單判斷頁面是否有sql注入漏洞,沒有准確率,需要如果掃到還需要自己判斷。