一、背景
笔者 6 月份在慕课网录制视频教程 XSS 跨站漏洞 加强 Web 安全, 里面需要讲到很多实战案例,在漏洞挖掘案例中分为了手工挖掘、工具挖掘、代码审计三部分内容, 手工挖掘篇参考地址为快速找出网站中可能存在的 XSS 漏洞实践(一)https://segmentfault.com/a/1190000016095198
本文主要记录利用 Web 安全工具 Burp suite 进行 XSS 漏洞挖掘部分,分为了设置代理,漏洞扫描,漏洞验证三个部分,其中 permeate 渗透测试系统的搭建可以参考第一篇文章。
二、操作概要
下载工具
设置代理
漏洞扫描
漏洞验证
三、下载工具
3.1 安装 JDK 环境
在本文中是使用的工具 burp suite 需要 JAVA 环境才能运行,所以需要事先安装好 JAVA 环境,JAVA 环境安装方法本文中再赘述,读者可以自行搜索 JAVA JDK 环境安装;
3.2 下载工具
burp suite 的官网地址为:https://portswigger.net/burp/, 打开官网后可以看到 burp 分为三个版本,分别是企业版、专业版、社区版本, 在本文中笔者所使用的是专业版,参考下载地址如下:
链接: https://pan.baidu.com/s/1H1ScgZTjPosZsdgjJDM4PA 提取码: s747
下载并解压刚才所下载的 zip 文件,便能看到文件夹中有一些文件和文件夹,如下图所示
3.3 工具运行
在上图中可以看到有一个 jar 文件,此文件便为 Java 语言所开发,因此只要安装了 JAVA 环境即可运行,不管是 windows 还是 mac 都可以运行此程序,双击 BurpUnlimited.jar 打开此程序,打开之后会有一个提示,如下图所示
在提示框中告知该程序为破解版本,仅用来学习,如果可以请购买正版,这里点击确定按钮,会再次看到一个确认界面,任然点击 Next 按钮,如下图所示
最后便能看到程序的界面,如下图所示
当打开程序看到上图界面时便是已经运行程序成功,下面便将进入 burp suite 的使用教程。
四、设置代理
现在笔者的工具已经运行成功,接着便开始使用 brup suite 开始挖掘出 XSS 漏洞,使用工具挖掘有三个步骤,第一步便是将一些基础信息给 burp suite,第二步则让 burp suite 自行扫描出更多信息,第三步便是开始正是挖掘.
现在笔者需要给工具提供一些基本信息,比如域名和 URI 地址以及 cookie 信息和其他各方面的数据;提供的方式有两种,第一种是自己手动去填写各项信息,第二种则是直接抓获浏览器的数据包给 burp suite,而手动提供相比较为麻烦,因此笔者这里通过抓浏览器的数据包的方式,让工具自己去获得所需的数据;
抓包主要有三个步骤,首先需要让 burp suite 开启代理服务,然后设置浏览器的代理地址,最后浏览器访问网址 burpsuite 便可以看到数据包,具体操作流程如下
4.1 打开代理
burp suite 开启代理服务比较简单,笔者将上方选项卡切换到 proxy->Options 这个位置,可以看到其实工具已经默认其实已经开启代理服务 127.0.0.1 地址,如下图所示
在上图中可以看到了 127.0.0.1:8080 这个地址,此时已经开启代理服务,因此不需要再做任何设置。
4.2 浏览器设置
现在代理服务已经打开,接着便是让浏览器的数据经过代理服务,笔者所使用的是谷歌浏览器,并安装了代理插件,这里将以插件设置代理的方式为例,如下图所示
从上图当中可以看到笔者所设置的协议为 http 代理,地址为 127.0.0.1,端口信息为 8080
4.3 抓包验证
接下来便是要进行代理的验证,最简单的验证方式便是通过浏览器打开网站,然后查看 burp suite 能否抓到数据包,笔者在第一篇文章快速找出网站中可能存在的 XSS 漏洞实践 (一)(https://segmentfault.com/a/1190000016095198) 当中已经安装好了对应的渗透测试系统,因此不再重复说明,
五、漏洞扫描
在前面的准备操作之后,现在便进入了核心操作环节,用 burp suite 进行抓包、爬虫、扫描等操作,分别对应的作用是通过抓包获取基本信息、通过爬虫获取即将被扫描的网站更多信息、通过扫描对获取到的信息进行暴力测试。
5.1 数据抓包
笔者现在以 permeate 渗透测试系统的 XSS 漏洞挖掘为例,首先通过浏览器 permeate 渗透测试系统,URL 地址如下:
http://permeate.songboy.net/
按下回车键之后,浏览器此时应该是处于等待状态,此时回到工具 burp suite 当中,可以看到已经抓到了数据包,如下图所示
点击工具中的 Forward 按钮,便可以将此放开,此时浏览器所展现的界面如下图所示,说明页面已经被打开
5.2 爬去链接
再次刷新浏览器,依然可以抓取到数据包,这次笔者需要通过 burp suite 去抓取 permeate 渗透测试系统中的 URL 地址,这个过程笔者称之为爬虫,操作方式如下图所示
在数据包的位置,右键单击点击,出现选项,点击 send to spider 之后,便可以在 spier 选项卡中可以看到如下图所示
在上图中可以看到 burp suite 已经找到了 permeate 中的 46 个链接地址,接着笔者切换到 target 选项卡当中,如下图所示
在 target 选项卡下,可以看到爬去到的所有链接地址
5.3 挖掘漏洞
在收集到了 permeate 渗透测试系统中的大部分 URL 的地址之后,就可以使用 burp suite 进行渗透测试工作,在渗透测试中会针对每一个地址进行常规漏洞的测试,包含了 SQL 注入、XSS 跨站、命令执行、CSRF、明文表单、文件包含等方面的漏洞
本文中笔者以 XSS 漏洞为例,在 target 选项卡下,选中对应的域名地址,鼠标单击右键,便可以看到 Actively scan this host 这一选项,如下图所示
点击之后该选项之后,便进入下一交互框当中,此时可以去除一些没有参数的 URL 地址,笔者这里勾选后将会去除没有参数的 URL 地址,以及后缀为 js、gif、jpg、png、css 的地址,如下图所示
点击下一步之后,便可以看到筛选后的 URL 地址,如下图所示
再次点击下一步之后,便开始进行了渗透测试,此时点击选项卡 scanner 便可以看到扫描的进度以及扫描的结果大致状态
六、漏洞验证
工具 burp suite 在扫描出漏洞之后会给出提示,但提示并不是完全准确,因此还需要人为的验证
6.1 查看进度
渗透测试所花费的时间是是由 URL 数量和网速所决定的,通常需要一定的时间,笔者可以在选项卡 Scanner 中的子选项卡 Scan issue 中可以看到渗透测试的进度以及扫描的大致情况,比如有些项当中呈现出红色,则代表扫描到高危漏洞,如下图所示
6.2 扫描结果
当扫描完成之后,可以在 Scanner 下的子选项卡 Issue activity 中看到完整的结果,结果中的红色表示高危漏洞,橙色表示低危漏洞,灰色则表示提示性安全为题,笔者选中其中一个红色选项卡,类型为 Cross-site scripting, 这个便是 XSS 漏洞,在下方可以看到的具体 payload,如下图所示
在 payload 当中,点击右键单击便可以复制其 URL 地址,可将其 URL 地址用于漏洞验证使用,如下图所示
6.3 漏洞验证
现在笔者通过浏览器人工的验证一下此 payload 是否真正存在,刚才笔者已经将带有 payload 的地址复制了下来,URL 地址如下
http://permeate.songboy.net/home/index.php?m=tiezie2eir%3cscript%3ealert(1)%3c%2fscript%3eftspc&a=index&bk=10
验证的时候注意一定不要使用谷歌内核的浏览器,因为谷歌内核浏览器自带 XSS 筛选器,会到导致网站及时存在反射型的 XSS 也无法复现
因此笔者使用火狐浏览器进行漏洞验证,如下图所示
七、新书推荐
如果对笔者的 Web 安全文章较为感兴趣,可以关注笔者更多文章内容,新书《PHP Web 安全开发实战》,现已在各大平台销售,封面如下图所示
作者:汤青松
微信:songboy8888
日期:2018-10-09