网站安全扫描工具(Web安全工具中的瑞士军刀)

简介Burpsuite作为web渗透较为常用的软件,有着8个比较常用的模块——proxy,target,intruder,repeater,sequencer,decoder,comparer,extender。它也被安全从业人员称为web安全工具中的瑞士军刀。这个工具有两个版本:Burp FreeBurp Professional字面上就能看出来一个是免费版,一个是收费版。两者的区别主要是免费版没有主动扫描的功能,但是免费版还是一个手动挖掘漏洞能力非常强大的工具。这里是对免费版的软件进行讲解。Kali默认是集成了Burp Free的,所以安装过程就不演示了,如果有哪位同学是要在Windows下安装,网上也有很多安装教程。接下来主要是对9个常用模块进行介绍。Proxyproxy代理模块是BurpSuite的核心功能,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改两个方向上的原始数据流,在proxy下有四个tab页,分别是intercept、HTTP history、websockets history、options。Proxy界面Proxy-intercept这个tab页下面有五个选项:Forward:用于发送数据,将当前拦截的包发出去。Drop:用于丢弃数据,将当前拦截的包丢弃。Intercept is on/off:显示on时,会将所有请求拦截;显示off时,会将所有请求放走。Action:将拦截的包发送给其他模块。Open Browser:打开浏览器。先来说Open browser吧,第一次使用,可能会提示:net. portswigger.devtools.client.a9:Refusing to start browser as your current configuration does not support running withour sandbox提示无法打开浏览器提示已经解释得非常明白了,就是配置里不允许,那就到配置项里去进行修改一下:勾上这个选项,就能正常打开浏览器:打开浏览器在Intercept is on时,打开的浏览器中所有的请求,都会被拦截:拦截的请求Proxy-HTTP history这个tab页比较简单,就是记录所有历史请求,顶部有一个筛选栏,中间是所有请求,底部是详细的请求信息和响应信息。HTTP history页面Proxy-WebSockets history这个tab页和前一个HTTP history模块功能类似,只是记录的是WebSockets的信息,不清楚Socket的,就简单理解成长连接就可以。WebSockets historyProxy-Options这个tab页都是proxy相关的设置信息,主要用于设置代理监听、请求和响应,拦截反应,匹配和替换,ssl等。可以根据工作需要进行调整:proxy options其中Proxy Listeners主要是侦听从浏览器传入的连接本地HTTP代理服务器。它允许监视和拦截所有的请求和响应,并且位于BurpProxy的工作流的心脏。默认情况下,Burp默认监听127.0.0.1地址,端口8080。在增加代理的时候,其实有很多配置项可以设置,感兴趣的可以研究一下,在一些特定情况下,会非常好用。但是这里只是入门级的介绍,所以不过多展开了。这里有一个证书的操作入口,如果你要对https的数据进行拦截,就需要从这个入口对证书做一些操作。当然在已经配置好代理的情况下,也可以直接通过网页进行访问:http://burp/从这里获取证书后,导入到浏览器,就可以使用Burpsuite拦截到浏览器访问的https数据了。Intercept Client Requests主要是配置拦截规则,设置拦截的匹配规则。当Intercept request based on the following rules为选中状态时,burpsuite会配置列表中的规则进行拦截或转发。比如只想抓取php脚本类型的数据包,可以这样设置:Intercept Server Responses和上面那个功能差不过,不过是针对服务器返回数据的拦截规则。Intercept WebSockets Messages是针对WebSockets的拦截方式设置。Response Modification是对服务器返回数据的一些修改项,比如将隐藏的一些表单显示出来,可以在浏览器上进行操作。Match and Replace是一些替换规则,比如请求头中有符合条件的内容,就更换成新的指定内容。TargetTarget模块其实和前面提到的那两个history的tab页有点类似,都会记录所有请求、连接。这个模块下面有三个小模块,分别是Site map、Scope、Issue definitions。在Site map页面主要就是显示请求、连接记录的:Site map可以看到左侧的站点信息记录中有些是黑色的、有些是灰色的。黑色表示真实发送了请求的,灰色表示在页面中存在的地址,但是没有真实访问过。如果觉得站点信息太多影响操作,可以选中自己需要的host,将其添加到Scope:添加Scope添加成功后,通过点击Filter栏,设置只显示Scope中的条目,就可以将不需要的站点信息隐藏:只显示Scope中的信息如果Scope添加错了,或者想修改一下,可以切换到Scope页面,这里支持增删改的操作:Scope页面这个模块还有一个Issue definitons页面,罗列了Burp Scanner能发现的所有漏洞类型的清单:漏洞清单IntruderIntruder模块可以用来做模糊测试。它可以执行许多任务,合适的攻击类型取决于应用程序的情况,比如有目录遍历、fuzz xss、sqli,还有暴力破解等等。这个模块有五个tab页,分别是Target、Positions、Payloads、Resource Pool、Options。Intruder-Target这个tab页就是设置攻击目标的,只能设置目标的host、port,还有是否使用https进行攻击:Intruder-Target除了在这个页面手动设置外,还可以在Target模块中选择任意请求直接作为Intruder-Target的参数:将Target中的数据传送给IntruderIntruder-Positions这个tab页用来设置攻击方式和攻击内容:Intruder-Positions一般是不会在这里手动敲请求内容的,都是从拦截到的请求里复制过来,或者直接传送过来。攻击方式(Attack type)有四种模式:Sniper:对标记变量依次进行爆破,对不同变量依次加载字典,不会同时对两个或两个以上变量加载字典。Battering ram:可对多个变量同时破解,多个变量使用同一个字典,多个变量为同一个值。Pitchfork:每一个变量对应一个字典(不同于上面两种,上述两者都是一个字典)。Cluster bomb:组合爆破,每个变量对应一个字典,并交集爆破(注意添加顺序)。对于攻击的变量设置,有四个快捷按钮:Add、Clear、Auto、Refresh。Add按钮的功能是增加一个变量:Add按钮的使用Clear按钮的功能是清理变量:Clear按钮的使用如果没有选中段落点击了Clear按钮,会将所有的变量都去除,变回原来的常量。Auto按钮的功能是系统自动挑选一些参数作为变量:Auto按钮的使用也可以在选中部分段落的时候点击Auto按钮,这样就只会在选中部分内容中挑选变量。如果没有选中,就会在全部报文中挑选变量。Refresh按钮的功能就是刷新,但是不太清楚什么场景需要刷新一下。Intruder-Payloads这个tab页是设置具体使用字典内容的:Intruder-Payloads其中Payload set这个设置项是用来设置字典数量的,Payload type是用来设置字典类型的。可选中的类型很多:Simple list:简单字典Runtime file:运行文件Custom iterator:自定义迭代器Character substitution:字符替换Case modification:对字母大小写替换Recursive grep:递归查找lllegal unicode:非法字符Character blocks:字符块Numbers:数字组合Dates:日期组合Brute forcer:暴力破解Null payloads:空payloadCharacter forbber:特定字符替换Bit flipper:bit翻转Username generator:用户名生成ECB block shuffler:ECB加密块洗牌Extension-generated:调用插件来生成字典Copy other payload:复制其他payload翻译的可能不是很准确,可以实际使用一下看看效果。而且在页面上其实也有相对详细一些的解释:Payload type的具体解释在Payload Options这个部分,会给出每一种Payload type对应的具体字典设置入口。这里以Simple list为例:Payload Options有六个可以使用的按钮:Paste:从粘贴板中复制内容进去Load …:加载文档里的内容Remove:移除内容Clear:清空Deduplicate:清除重复数据还有一个Add from list的按钮在社区版不可用,需要专业版才可以使用。在Payload Options下面是Payload Processing,这块主要是设置使用字典前的处理规则:Add payload processing rule规则类型有以下这些:Add prefix:添加一个文字前缀Add suffix:添加一个文字后缀Match/replace:将替换匹配特定正则表达式的有效载荷的任何部分Substring:选取从字符串from位置开始,选取length长度的字符串Reverse substring:倒序选取从字符串from位置开始,倒序选取length长度的字符串Modify case:改变大小写Encode:使用不同的转码方式对字符串转码,将转码结果作为变量Decode:使用不同的解码方式对字符串解码,将解码结果作为变量Hash:对字符串做hash处理Add raw payload:对字符串进行重复,例如将”user”转变为“useruser"Skip if matches regex:将包含设定字符串的字符串跳过Invoke Brup extension:调用拓展插件最底下还有一个Payload Encoding部分,这里是对一些特定字符进行转码,避免在请求中使用一些特殊字符直接导致请求失败:Payload EncodingIntruder-Resource Pool这个tab页是攻击的资源池,可以设定用多少资源来发起攻击:Resource Pool可以使用现有资源配置项进行攻击,也可以重新配置一个新的资源项,主要就是一个并发量的设置。这个tab页右上角有一个开始攻击的按钮,其实在顶部Intruder的菜单里也有一个执行入口:Start attack两处开始攻击按钮的功能是一样的。执行结果会有一个小弹窗:attack结果Intruder-Options这个tab页是单独针对Intruder的配置项:Intruder-Options包括请求头设置项、错误控制项、攻击结果控制项、结果过滤规则等等,这些配置项多数时候对于攻击效果影响不大,这里就不细说了,感兴趣可以实际配置看看效果。RepeaterRepeater模块是用于手动操作和发送个别HTTP请求,并分析应用程序的响应一个简单的工具。您可以发送一个内部请求从Burp任何地方到Repeater,修改请求并且发送。手动发送请求SequencerSequencer模块是一种用于分析数据样本中的随机性质量的工具。通常用于检测访问令牌是否可预测、密码重置令牌是否可预测等场景,通过Sequencer的数据样本分析,能很好地降低这些关键数据被伪造的风险。Sequencer模块页面这个模块主要由三个tab页组成:Live capture:信息截取Manual load:手动加载Analysis options:分析设置项Sequencer-Live captureLive capture页主要是用来实时捕获请求的,请求数据是从其他模块直接右键传送过来的。在请求数据传送到Live capture页面后,还需要设置Token Location Within Response:Token Location Within Response目的是定位Token在报文中的位置。下面还有一个Live capture Options的设置项,主要是设置实时捕获的参数:Live capture Options能设置的参数有三个:Number of threads:线程数Throttle between requests(milliseconds):请求之间的间隔时间Ignore Tokens whose length deviates by 口 characters:忽略指定长度偏移的字符标记在设置好之后,点击start live capture后,会弹出执行窗口,在requests数量超过100之后可以Pause或者Stop,然后对结果进行Analyze now:执行结果还可以将执行结果保存到本地。Sequencer-Manual load如果前面Live capture的执行结果被保存到了本地,那在Manual load页面就可以将那份执行结果加载进来,然后直接进行分析。Manual loadSequencer-Analysis options这个tab页面主要是分析的设置项:Analysis optionsDecoder这个模块是将原始数据转换成各种编码和哈希表的简单工具。它能够智能地识别多种编码格式采用启发式技术。Decoder支持编码解码的类型有:1. Url、2.HTML、3.Base64、4.ASCII hex、5.Hex(十六进制)、6.Octal(八进制)、7.Binary(二进制)、8.GZIPComparerComparer模块主要提供一个可视化的差异比对功能,来对比分析两次数据之间的区别。应用的场景可能是:枚举用户名过程中,对比分析登录成功和失败时,服务器端反馈结果的区别。使用 Intruder 进行攻击时,对于不同的服务器端响应,可以很快地分析出两次响应的区别在哪里。进行SQL注入的盲注测试时,比较两次响应消息的差异,判断响应结果与注入条件的关联关系。Comparer页面Logger这个模块主要是记录工具发起的所有请求,可以用于回溯分析。LoggerExtenderBurp支持第三方拓展插件的功能,方便使用者编写自己的自定义插件或从插件商店中安装拓展插件。Extender这个模块就是管理第三方插件的地方:Extender页面插件很多,功能也很丰富,还很贴心地提供了搜索插件的功能。其他还有三个模块,分别是Project options、User options、Learn。前面两个分别是工程、用户相关的配置项,最后一个模块是官方提供的一些学习资料。设置项和学习入口总结如果你准备长期从事web安全相关的工作,Burpsuite是你可以优先考虑的渗透工具。它能满足你渗透工作中很大一部分需求,使用也非常灵活。

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.175ku.com/37861.html