渗透工具Burp Suite浅析
Burp suite是一款Web安全领域的跨平台工具,基于Java开发。它集成了很多用于发现常见Web漏洞的模块,如Proxy,Spider,Scanner,Intruder,Repeater等。所有的模块共享一个能处理并显示HTTP消息的框架。
Proxy 代理模块
这是Burp的核心模块。首先我们要理解一个概念,我们访问一个网站的时候,客户端会向服务器发送请求数据包。在这个过程中,它会先检查是否设置了Proxy代理信息,如果没有的话,数据包就会被发送至服务器。但是如果我们设置了代理服务器,这个数据包信息就会被拦截下来。
而在代理服务器中,它收到了客户端发送的HTTP请求,它会将数据包解析,我们可以在代理服务器上对这些数据进行处理,处理完后发送给目标服务器。Burp的Proxy代理模块承担的就是代理服务器的作用。
配置代理
Proxy->Options->Proxy Listeners->Add添加代理
Bind to port表示监听端口号
Bind to address设置中,Loopback only表示本机使用,All interfaces表示局域网内的设备使用代理。
Proxy->Intercept中进行抓包分析
HTTP请求报文
HTTP请求报文可以分成5部分:
HTTP主要头字段
头字段类型 | 含义 |
---|---|
Host | 接受请求的服务器IP地址和端口号 |
User-Agent | 客户端软件的名称和版本号等相关信息 |
Accept | 客户端可支持的数据类型(Content-Type),以MIME类型来表示 |
Accept-Language | 客户端可支持的语言 |
Accept-Encoding | 客户端可支持的编码格式(Content-Encoding),一般表示数据的压缩格式 |
Content-Type | 表示消息体的数据类型,以MIME规格定义的数据类型来表示 |
Content-Length | 表示消息体的长度 |
Origin | 用来说明请求从哪里发起的,仅包括协议和域名 |
Connection | 设置发送响应之后TCP连接是否继续保持的通信选项 |
Referer | 告诉服务器该网页是从哪个页面链接过来的 |
Cookie | 一段保存用户访问记录足迹等个人信息的字符串 |
X-Forwarded-For | HTTP 请求端真实 IP |
一个好用的代理插件:SwitchyOmega |
Repeater 重放模块
一般在抓到数据包后,我们可以对数据包的信息进行修改并重新发送,就可以用到Repeater模块。
Raw
Proxy->右键Send to Repeater将截获的数据包发送至Repeater模块。在这个模块中,左边为将要发送的原始HTTP请求,右边为服务器返回的数据,在左边对数据包进行修改,测试payload,修改完成之后点击Go按钮,右侧就可以收到服务器的响应。
Headers
方便添加HTTP头信息,避免手动修改HTTP头时产生的格式问题,比如对于检查IP地址的题目,就可以在这里添加X-Forwarded-For头进行绕过。
Hex
修改HTTP数据包的十六进制编码,比如文件上传时截断后缀,对WAF进行模糊测试,上传Webshell等等。
Intruder 破解模块
爆破是一种低成本但是可能带来高回报的方式,Burp中提供了简单易用的Intruder模块来进行爆破
Attack type
-
Sniper(狙击手)
一一对应爆破。一个参数,500个payload,就执行500次;两个参数,500个payload,就执行1000次。
-
Battering ram(攻城锤)
共同对应爆破。一个参数,500个payload,和上面一样执行500次;两个参数,500个payload,也只执行500次,两个参数一起换。
-
Pitchfork(草叉模式)
一一对应爆破。至少有两个参数,每一个payload都应该有参数数量的值,如用户名密码撞库攻击。
-
Cluster bomb(集束炸弹)
排列组合爆破。至少有两个参数,将所有的payload进行排列组合爆破
payloads
-
Payload Sets
Payload set:爆破参数个数
payload type:爆破参数类型
-
Payload Options[]
会根据爆破参数类型的不同而改变,设置字典
-
Payload Processing
对生成的Payload进行编码、加密、截取等操作
-
Payload Encoding
对payload中的部分字符进行URL编码,进行安全传输
Options
主要对Request Engine中的参数进行设置。
- Number of threads:线程数量
- Number of retires on network failure:网络连接失败时的重连次数。
- Pause before retry:每次重传前的暂停时间。
- Throttle:调节数据包发送速度的选项。
- Start time:开始时间。
Decoder 解码模块
这个当中是一些编码和解码工具,可以方便地对需要地数据进行编码和解码,而且支持用文本格式或十六进制模式进行查看。
Comparer 比较模块
在某些注入Bool盲注地正确或错误回显的题目中,有时候两次数据包之间的差别很小,通过比较模块可以很清楚地进行比较。
Scanner 漏洞扫描模块
常用于渗透测试当中,用来自动地发现WEB应用程序的漏洞。
渗透测试常用工具
OWASP ZAP 用来自动检测WEB应用程序的漏洞
Nessus 系统漏洞扫描工具
MSF渗透测试中最重要的漏洞利用框架