1.3 浏览器与插件
由于比赛时可能会遇到兼容性方面的问题,并且题目有可能会对浏览器做出限制,或者需要考察特定浏览器的漏洞,所以笔者建议大家将IE、Firefox(开发者版本)及Chrome等主流浏览器各安装一个。本节主要介绍Chrome的插件,Firefox中也会有类似的插件。笔者不推荐用IE来答题,不过还请读者根据自己的喜好自行选择。
在Chrome中安装扩展可直接在地址栏中输入chrome://extensions/并按回车键进入,也可以依次选择右上角的设置→更多工具→扩展进入相同的界面。
这里推荐几个在日常和CTF比赛中比较常用的Chrome浏览器插件。
1.Developer Tools
Developer Tools是Chrome浏览器自带的开发者工具,也是最常用到的功能,它集成Elements、Console、Sources、Network、Application等丰富的开发工具于一体,可以让Chrome对网页的元素、样式和脚本进行实时编辑、调试和监控。这里简单介绍一下常用面板的功能。
·Elements:查看网页源码经过浏览器渲染后的所有元素,可手动修改元素的属性和样式,并在浏览器中得到实时的反馈。
·Console:记录并显示开发者或浏览器输出的日志和调试信息,并可以作为与JS进行实时交互的命令行Shell。
·Sources:通常用于下断点调试JS。
·Network:记录发起请求后服务器响应的各种资源信息(包括状态码、资源类型、大小、耗时等),可以查看每个请求和响应的元信息。
·Application:记录网站加载的所有资源信息,包括存储数据(Local Storage、Session Storage、IndexedDB、Web SQL、Cookies)、缓存数据、字体、图片、脚本、样式表等。
·Security:从技术层面判断当前网页的安全性,如,是否有可疑代码、证书是否合法、通信链路是否安全等。注意,其并不能判断该网站是否为钓鱼网站或是否含有欺诈信息!
在CTF比赛中,需要处理JS相关的题目时,可以在Console面板中直接运行JS代码,而在XSS题目中,在Elements面板中可以方便地定位元素的位置等。
2.Hasher
一款可以快速计算常见哈希算法(MD5/SHA1/HMAC/CRC等)、常用加密算法(AES/DES/RC4等)、编码转换(Base64/ROT13/HTML字符实体等)、网络地址转换、时间转换及进制转换等功能的工具,与前面Burp中的Decoder模块类似。
3.Proxy SwitchyOmega
这是Chrome的一款代理插件,可以在多个代理配置文件之间快速切换。在前面的小节中我们说过,Burp切换代理时不是十分方便,这时候就可以将Burp与它结合,从而实现点击鼠标就能完成代理的切换。此外,在遇到内网渗透相关的题目时,打通socket隧道后也可以用它来让浏览器全局使用代理进行内网渗透。同时,它还可以配合“梯子”以实现科学上网。
4.EditThisCookie
EditThisCookie是一个Cookie管理器,它可以方便地添加、删除、修改、查询和锁定站点的Cookies。这个插件可以配合XSS的题目使用,例如,当我们获得管理员的Cookies后,可以方便地修改这个站点的Cookies,从而以管理员的身份登录并进行后续获取flag的操作。
5.User-Agent Switcher for Chrome
这款工具可以让我们方便地进行User-Agent的切换,这一点在某些限制User-Agent的题目中可能会用到,比如模拟微信客户端UA进行访问等。
6.Wappalyzer
这款插件可以方便地查看当前站点的服务器型号、版本、服务器端语言等信息,可以帮我们进行一些初步的信息收集。不过,此处获取到的信息仅可作为参考,因为部分比赛题目会使用障眼法来影响你的判断,例如,Apache服务器返回了一个伪造的IIS头。
7.SelectorGadget和XPath Helper
这两个插件都是用来定位、提取和选择指定元素的XPath,通常配合爬虫使用。
当然,Chrome中的插件还有很多,这里就不再一一举例说明了。希望大家在CTF比赛或是实际的渗透测试中也能发掘出一些好用的插件,并提高熟练度。