2018-2019-2 20189206 《网络攻防实践》 第十一周作业
Burp suite
Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务,请求的拦截和修改,扫描web应用程序漏洞,以暴力破解登陆表单,执行会话令牌等多种的随机性检查。
-
Proxy代理 ——是一个拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。通过在默认端口8080上运行,可以截获并修改从客户端到web应用程序的数据包。
-
Spider蜘蛛 ——是一个应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。Burp Suite的蜘蛛功能是用来抓取Web应用程序的链接和内容等,它会自动提交登陆表单(通过用户自定义输入)的情况下,Burp Suite的蜘蛛可以爬行扫描出网站上所有的链接,通过对这些链接的详细扫描来发现Web应用程序的漏洞。
-
Scanner扫描器[仅限专业版] ——是一个高级的工具,执行后,它能自动地发现web应用程序的安全漏洞。但是测试过程中会有一些误报,并不会100%准确。
-
Intruder入侵 ——是一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。
-
Repeater中继器 ——是一个靠手动操作来补发单独的HTTP请求,并分析应用程序响应的工具。此功能用于根据不同的情况修改和发送相同的请求次数并分析。
-
Sequencer ——是一个用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
-
Decoder解码 ——是一个进行手动执行或对应用程序数据者智能解码编码的工具。
-
Comparer ——是一个实用的工具,通常是通过一些相关的请求和响应得到两项数据的一个可视化的“差异”。
proxy代理
- 使用代理功能需要我们能够截获并修改请求,为了拦截请求并对其进行操作,我们必须通过burp suitep配置我们的浏览器
在火狐浏览器的高级设置中,开启代理功能
- 设置brup的监听端口
- 开启
intercept is on
表示开启拦截功能,其对应的intercept is off
为非拦截状态,设置完代理后打开拦截状态,浏览器发起的请求会被burpsuite所拦截。
- 其中
forward
表示可以继续这次请求 drop
则表示丢弃此请求数据。Action
的功能是除了将当前请求的消息传递到Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer组件外,还可以做一些请求消息的修改,如改变GET或者POST请求方式、改变请求body的编码,同时也可以改变请求消息的拦截设置,如不再拦截此主机的消息、不再拦截此IP地址的消息、不再拦截此种文件类型的消息、不再拦截此目录的消息,也可以指定针对此消息拦截它的服务器端返回消息。
- Raw 这个视图主要显示web请求的raw格式,包含请求地址,http协议版本,主机头,浏览器信息,accept可接受的内容类型,字符集,编码方式,cookies等,可以手动修改这些内容,然后在点击forward进行渗透测试。
- params 这个视图主要是显示客户端请求的参数信息,get或者post的参数,cookies参数,也都可以修改。
- headers是头部信息和Raw其实差不多,展示更直观。
- Hex 这个试图显示Raw的二进制内容。
- 我们点击
forward
可以看到,浏览器可以正常访问百度,关闭拦截功能,可以在http history中看到访问记录
- 选择
send to repeater
可以进入重放功能
- 选择
send to intruder
进行爆破功能,进入后先点击clear $
把要爆破的参数后面的值选中,点击Add $
- 设置好后进行字典的设置
![](https://img2018.cnblogs.com/blog/1505758/201905/1505758-20190512200353075-716262267.png)
Spider
- 爬网设置
其中,Maximun link depath
是爬网的深度,Maximim parameterized requets per URL
是指请求参数URL是多大
被动爬网:获得的链接是手动爬网时候返回页面信息中心发现的超链接
对于爬网时遇到HTML应该如何操作
有三种操作:
- 不发送表单
- 弹出向导手动输入表单后发送
- 如果下面有匹配的规则对应的表名,就自动填写下面的值
需要表单身份认证时的操作(默认进行提示)
- 不提交表单
- 弹出向导手动提交表单
- 像上面普通表单一样处理
- 自动填写下面的表单
这里需要设置的是线程数、失败后重新尝试的数目、等待时间
请求头,在爬网时自动添加到请求头处:
- 使用spider
通常对一个站点进行手动爬网再进行被动爬网,在Target界面对目标右键,选择Spider进行爬网
scanner
我下载的community并不支持scanner功能,参考Burp Suite详细基本用法(二):Spider、Scanner、Intruder模块 介绍了scanner的使用方法。
Intruder
在爆破的时候会用到Intruder,右键点击发送至Intruder模块。在Proxy模块也提及了一些,下面介绍一下攻击类型
-
第一步 选择攻击类型
- sniper 只需要指定一个文件,加入该文件有两条内容,会在第一个位置上逐一插入这两条内容,再在第二个位置上逐一插入这两条内容
- Battering ram 在第一二个位置上全放payload的第一个值,第二次都放第二个值
- Pitchfork 不能只指定一个字典,会在第一个字典中取第一项放在第一个位置,同时在第二个字典中取第一项放在第二个位置,之后换各自字典第二项同时替换
- Cluster bomb 不是一对一的关系,第二项里面先用其字典的第一个值和第一项的所有字典都对应一次,之后第二项再换成字典中的第二个
-
第二步 选择要使用的payload
介绍几个常用的payload类型:
-
Runtime file 用文件,只有当启动了Intruder后文件内容才被load进去
-
Case modification 会对payload每个单词大小进行替换
-
Character block先插入100个A,下次插入150个A,最大1000个A
-
Username generator username生成器,根据用户进行变形,进行猜测密码等
- payload processing 对payload进行加工,例如添加前缀、添加后缀等
- payload Encoding 可以对所指出的字符进行URL编码
- 第三步 Start sttack
- 第四步 判断
通过相应内容长度、或者状态码判断是否成功,或通过关键字进行过滤。
也可以通过Grep-Match,进行制定特征字符,如果Match一个特征字符就说明破解成功
Decoder
通过有请求的任意模块的右键菜单send to Decoder或输入数据选择相应的数据格式即可进行解码编码操作。
其中Smart decode按钮为智能解码,brup会递归查询自己所支持的格式尝试解码。
支持的编码、解码类型有:URL、HTML、base64、ASCII码、hex、octal、binary以及GZIP
上图可以看到对于同一个数据,可以在decoder解码进行多次编码解码的转换。
Repeater
对数据包右键可以将请求发送到repater页面
在repeater页面可以对请求手动修改,并发送,可以看到发送和响应的信息
Sequencer
序列器模块用于检测参数的随机性,例如密码或者令牌是否可预测,以此判断关键数据是否可以被伪造。此功能需要设置代理获取目标域名,同时关闭代理拦截功能。将需要的检测序列的目标域名发送给sequencer模块,序列检测性就是获得网站提取cookie信息,然后将发送大量请求,以得出序列的健壮性。
右键发送到Sequencer,选择PHPSESSID这个cookie值进行判断,或者手动进行判断,点击Start live capture能使服务器不断发送请求生成新的PHPSESSID,收集到一定量后再进行判断(可以点击Sve tokens进行保存收集到的session ID),生成到足够量的时候可以进行analyse:
查看结果发现session ID随机性很好
Comparer
对于数据包可以使用右键选择send to comparer,选择两个数据包进行比较
可以看到两个数据包的不同之处