初探Burp Suite API 開發
GIF
0x00環境準備
安裝完成後,載入jython的jar包到BurpSuite運行環境中。
GIF
0x01 BurpSuite API中常見的類
IBurpExtender
該類中有個registerExtenderCallbacks方法,該方法在插件被載入後會被調用,在所有擴展插件中必須實現這個介面。
java的調用方法:
python的調用方法,python需要對這個方法傳入的參數進行處理,處理的是為了更加方便的調用基本介面的方法,這裡就列出了一些方法,其他的可以參考IBurpExtenderCallbacks的內容。
IHttpListener
該類是用來註冊HTTP監聽器,然後對獲取到的請求或響應包進行處理,有個processHttpMessage的方法用於對請求和響應的數據包進行自定義操作,該方法在發送請求之前和接收響應之後會被調用。
java的調用方法:
python的調用方法:
IHttpRequestResponse
該介面用來獲取HTTP中請求和響應的HTTP信息,如果是響應包的HTTP信息,需要在請求被發送後才能獲取到。
該介面有getComment(),getHighlight(),getHttpService(),getRequest(),getResponse(),setComment(java.lang.String comment),setHighlight(java.lang.String color),setHttpService(IHttpService httpService),setRequest(byte[] message),setResponse(byte[] message)
這些方法。可以直接在官方介面文檔中查看。
其中getHttpService()方法會返回IHttpService的對象。如果需要獲取協議,主機,埠信息的,就需要對IHttpService對象里相應的方法進行調用。
java的調用方法:
python的調用方法:
IHttpService
該介面用來獲取可以被發送的請求包的詳細內容,有getHost(),getPort(),getProtocol這個三個方法。
java的調用方法:
python的調用方法:
IResponseInfo
該介面是用來獲取響應包的詳細內容的,通過IExtensionHelpers.analyzeResponse()的方法調用該對象中的方法。
該介面有getBodyOffset(),getCookies(),getHeaders(),getInferredMimeType(),getStatedMimeType(),getStatusCode()的方法。
java的調用方法:
python的調用方法:
IRequestInfo
該介面是用來獲取請求包的詳細內容的,通過IExtensionHelpers.analyzeRequest()的方法調用該對象中的方法。
該介面有getBodyOffset(),getContentType(),getHeaders(),getMethod(),getParameters(),getUrl()的方法。
java的調用方法:
python的調用方法:
GIF
0x02示例代碼
GIF
0x03載入插件
當請求中有callback或隱藏callback且返回包是json格式的便會在output上列印記錄。
TAG:漏斗社區 |