Webapp测试Burp技巧(二)
在本系列连载的第一节中,笔者谈到了关于burp对非webapp的功能测试。本来我只想写点东西分享出来,并没想到会扯出那么多。现在嘛,我还会继续写下去。
在这一节中,我会讲一讲:
Target > Scope
Proxy > HTTP History
Intruder/Scanner
同时,我也会在这里谈一点Scanner、Repeater和Comparer,但是不会讲太多,毕竟这几样是比较简单的。
Scope
理想的情况下,你可以利用它过滤掉一些没有用的东西。
将一个网络包添加进scope是很容易的,右键选中一个请求包,就可以将它加入scope。然后你就可以通过Target > Scope,看到这个请求被加进去了。举个例子,如果我把一个对Google的logo的GET请求给添加进了scope,Google的其他域名是不会被添加进scope的,必须手动进行添加。
另一种方式就是复制URL,然后将它粘贴进去。如果我们在某个请求(任意位置)上右键,就可以将该请求的URL通过Copy URL选项复制到剪贴板。接着,我们可以点击Paste URL按钮,将其复制到scope。这个按钮在burp其他地方也有,是可以通过类似的方式进行使用的。
02.gif
我们通常并不会希望scope里面只有孤零零一个请求在起作用,可能我们需要的是匹配“*.google.com”,或者匹配“google.com/images/”。值得庆幸的是,我们可以在scope里用正则表达式划定范围。常用的做法是,在把URL加入scope后,使用edit按钮,自行更改其中的内容。
Scope里面有个四个选项:
协议:Any、HTTP、HTTPS,这里我通常会选Any。
IP主机范围:支持正则如:*\.google.com
端口:除非我要监听特定端口的流量,不然一般会把它空着,也就是不做任何过滤。
文件名:也就是URL除去域名后的那部分内容,支持正则匹配。
如果我们想要把Google和它所有的子域名加入scope,我们可以对将那个logo的请求(也可以是任意与其类似的内容),添加进scope,然后对它进行编辑。
HTTP History
Proxy > HTTP History,里面是Burp历史截获的请求和响应包,我使用Burp时要花一多半的时间在这里。我们可以通过过滤器减少没用的内容,点击选项卡Filter: Showing all items(每个人设置不同,显示的可能不一样)即可打开。
最有效的减少无用信息的选项,是通过选择Show only in-scope items,隐藏所有不在scope里面的内容,下面是演示图片:
正如你在截图中所看样,那个过滤器里有许多选项,不少都简单易用。下面,我会指出其中在非webapp中我经常使用的。
Filter by MIME type:这里会将激活所有东西,直到你确信没有丢失任何请求。MIME-type并不总是在响应包里正确声明的,Other binary可以用来查看更多二进制,或者异常的payload(默认没有激活)。
Filter by file extension:我只是使用了Hide特性,并常常添加一些我不感兴趣的额外扩展在上面(比如字体),这样就可以将他们过滤,不使用到它们。
Filter by listener:当某个应用需要连接不同的端口,而且自身并不支持代理设置时,这是一个非常有用的东西。我们这里可以监听本地localhost(或者修改hosts文件),并为每个端口创建一个不同的代理监听器,这样就可以监听到特定的流量。
Scanner(只有在pro版本才有)
Burp自带一个不错的扫描器,当然它不可能像IBM专业版的Appscan那样面面俱到,但它在非webapp中的测试中,有着许多优势。
首先Burp是非常快速简单的,我可以登录扫描一个简单的请求,并且仅仅进行这样的动作。而在Appscan
中,我不得不完成整个app的扫描(配置扫描、记录登录过程、手动浏览、自动浏览、最后才是进行整个扫描),最无语的是有些特殊的登录它还重放不了。比如在某些特殊的登录口,会有个随机token。
Burp也便宜得多,专业版的才300美元/年,Appscan则达到了2000美元/年。
Issue activity选项卡里会有扫描结果(通过Target> Site map会看得更加仔细),Scan que
Custom iterator选择项能够让Burp转化成大量的繁杂payload。例如,我想要仿真模拟转化成hex中的俩位(总共4个空格符,例如0×00)。这里,我挑选了position 1,在里边0-9和a-f。一起,在position 2-4里边会反复这一规律性。Burp总共容许你挑选8个position。当你愿意在自此再加usernames,我能挑选position 5再加usernames词典。如你所闻,它还适用不一样position中间的凸轮分割器。
强烈推荐有个非常好的payload词典,FuzzDB:
https://github.com/fuzzdb-project/fuzzdb
特别注意,它里边包括了某些被电脑杀毒软件标识的payload。
Payload Processing
你能在开展引入以前,变换下payload。例如你能将全部的payload都变换为base64,随后上传她们的hash。
Options
人们能够低平Intruder的post请求速率,或是对其进行延迟时间解决。
Payload Encoding会让Burp开展URL编号,处理特殊字符难题。
Grep – Match
人们能够从没有响应包里牟取独特的项。例如人们引入了sqli的payload,人们能够让Burp寻找SQL不正确关键字。要是是XSS得话,我一般会应用alert(9999)这类的,随后在没有响应post请求里找寻9999。
FuzzDB拥有自个的正则表达式方式来剖析没有响应包,这儿得出1个连接,将给大伙儿展现怎么使用他们。
Repeater – Decoder – Comparer
这种菜单栏并沒有太智能,可是也很有效。
Repeater
Repeater一般是手工制作测的那时候用的,Scanner自动化技术扫描仪,而Intruder是全自动流水线的。
当你愿意用repeater发包,点一下鼠标右键选定Send to Repeater只能。人们能够变更post请求,发送他们并观查这种没有响应。
这儿我挑选了logo的GETpost请求,将其发给Repeater随后发送它。然后变更里边的內容并post请求并找不到的文档,人们会见到404。显然,用Ctrl+Z就能修复原先的post请求。
你能把变更过的內容从Repeater发给Intruder开展扫描仪。
Decoder
这儿能够加密解密不一样的文件格式,也适用建立hash。双击鼠标随意主要参数开展选定,随后鼠标右键点一下挑选Send to Decoder。你还可以将其选定,随后按住Ctrl+C将其拷贝随后贴进decoder。
Comparer
Comparer是用以2个payload或是HTTPpost请求没有响应包中间的较为。将必须较为的內容选定,鼠标右键点一下Send to Comparer。这一较为作用能够逐比特开展(以便照料二进制文件),还可以是逐字节开展(用以文字)。
相关文章
- 3条评论
- 只酷念稚2022-06-02 22:57:29
- 方也有,是可以通过类似的方式进行使用的。 02.gif 我们通常并不会希望scope里面只有孤零零一个请求在起作用,可能我们需要的是匹配“*.google.co
- 莣萳莺时2022-06-03 09:30:48
- 有响应包中间的较为。将必须较为的內容选定,鼠标右键点一下Send to Comparer。这一较为作用能够逐比特开展(以便照料二进制文件),还可以是逐字节开展(用以文字)。
- 礼忱矫纵2022-06-03 07:47:22
- uder的post请求速率,或是对其进行延迟时间解决。 Payload Encoding会让Burp开展URL编号,处理特殊字符难题。Grep – Match 人们能够从没有响应包里牟取独特的项。例如人们引入了sqli的