工欲善其事,必先利其器。安全测试是个反复的过程,只有不断地去测试、去体验才能深刻的理解漏洞的原理。
测试神器——浏览器
浏览器安全特性与设置
常接触的浏览器主要有以下几种:Chrome、Firefox、ie
- Chrome
不同浏览器安全特性存在差异,可能导致同一个漏洞在不同浏览器触发效果不同——这个就是浏览器的兼容问题。
- 根据测试需求修改浏览器的安全设置
Chrome为例:以地址栏为中心,左侧为网站权限查看与设置按钮、右侧为已安装插件显示区、最右边为功能菜单按钮
- 如何设置呢?通过功能菜单列表打开设置页面,高级设置通常是处于隐藏状态的,通过高级设置按钮可以打开→内容设置→可以这只的主要内容为JavaScript和允许弹窗两个项目需要修改(当然也可以通过网站权限查看与设置按钮直接设置)
- Firefox
页面布局大致跟Chrome是一致的,以浏览器地址栏为中心,左侧是网站权限与设置按钮、右侧为已安装插件显示区、最右侧为功能菜单按钮。(于Chrome区别就是把插件按钮罗列上去就感觉不是很清爽了)
如何设置呢?打开功能菜单列表后,打开选项按钮就可以看到左侧有很多内容通常我们都会用到:拦截弹出式窗口选项(如果测试可能需要不让浏览器拦截,但是这样的话广告也会弹出)
- ie浏览器
ie是微软出的一款产品:功能按钮和其他浏览器还是有些差别的
如何设置呢?打开功能菜单按钮,选择“Internet选项”,在它当中有个“安全”选项→自定义级别里面就可以设置取消/启动“XSS浏览器”设置,这个就可以保证我们的“XSS脚本”不会被拦截。
以上设置是为了我们在测试过程当中防止因为浏览的设置问题而导致弹窗等不可见。
安全测试常用功能
这个部分主要以Chrome浏览器为例。
- 如何清除缓存?
- 为什么要清除缓存呢?
- 因为浏览器为了提升用户体验,都有记住密码的功能,这样在应用的时候就不用登录的时候每次都输入登录密码了,但是如果我们要测试登录窗口的时候呢?一点击就访问成功了,所以需要清除缓存功能。
- 功能菜单→历史记录→清除历史记录(可以选择时间和范围)
- Chrome 浏览器有隐身模式——打开隐身窗口就可以了。
- 为什么要清除缓存呢?
- 如何查看网页的源代码?
- 在测试的过程当中,信息的搜集是基础,信息搜集的多少对于测试能否成功起到关键性的作用,而网页源代码当中通常包含大量的敏感信息,如:在HTML/JS当中备注的作者的信息、邮箱的信息,甚至可能包含以下系统的账号和密码信息。
- 如何查看源代码呢?主要有两种方式
- 鼠标右键
- 鼠标移动到网页当中的任意位置后,右键选择查看网页源代码
- 也可以在地址栏当中直接输入url查看源代码
- View:source url
- 鼠标右键
- 如何查看dom元素?(当我们分析form表单的参数的时候、分析下拉框是如何实现的时候)
- 鼠标右键方式查看
- 鼠标移动到想要查看的元素的位置上,鼠标右键→检查选项,点击后再开发者工具栏当中就可以定位到元素的代码。
- 在开发者工具栏当中也提供列快捷键,(最左上角的小箭头)直接选中需要查看的代码即可
- 鼠标右键方式查看
- 如何打开开发者工具栏?
- F12(快捷键)
- 功能菜单→更多工具→开发者工具
- 如何查看网络数据包?
- 开发者工具栏当中的network选项就提供了查看网络数据包的功能。
- 选中network→F5(刷新)便可以看到打开当前页面时发送的所有请求。
- 开发者工具栏当中的network选项就提供了查看网络数据包的功能。
(请求文件名、返回状态码、请求文件类型、所用时间等)
打开一个数据包,我们可以看到请求和响应的基本情况、HTTP响应header头数据、HTTP清酒header头数据、远程服务器ip地址和端口、远程服务器类型等信息,这些请求和响应的信息可以帮助我们来判断我们的测试脚本是否执行成功,其中一些细微的差别就能体现出漏洞是否存在,所以我们要熟悉这些请求信息和响应信息,根据这些信息来发掘一些可能存在的漏洞了。
野兔
2019.2.19