------------恢复内容开始------------
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注入漏洞,没有准确率,需要如果扫到还需要自己判断。