|
本帖最后由 cedar 于 2013-2-26 12:57 编辑
概述
喵喵咪咪工作室制作了喵咪浏览器主要用于Web安全测试领域
现在中国测试行业的安全测试现状
在网络上跟一些人交流了下关于安全性测试的问题.
发现在阶段大部份测试人员在进行安全性测试过程中, 还仅仅是使用工具对Web应用进行安全性扫描.
现在很多安全性扫描的工具都做的非常强大.扫描也比较全面.操作简单,仅仅按几个按钮后.只要等一段时间.就可以完成测试.并把测试结果罗列出来
但仔细想想,这些结果就是我们测试人员所需要的么?
其实,在扫描完,得出这些测试结果后,我们都会有这样的疑问.为什么会有SQL注入,为什么会有跨站攻击.为什么我平时用的时候,没有留意到这些安全漏洞呢?
很多的问题都会产生.原因是什么?
是因为,我们在测试过程中,完全是按照开发人员所提供的操作流程,信息提示进行测试和操作的.
比如:输入身份证号码中,输入了20位的数字,页面就会提示,输入身份证不合法,让用户重新输入.
测试人员会按照Web页面的思路继续进行操作.并没有考虑到页面的提示信息仅仅是浏览器所发出的,并不是Web应用程序所提示的.
Javascript的异常判断,限制了测试人员的操作行为.
又比如,在测试页面登录中,测试人员常常会问,为什么我没发现这个登录有SQL注入.因为,在用户输入特殊字符的时候,页面程序将其过滤掉了.
但所有的这些并不是后台的Web的处理过程.
测试工具目的
综上所述,安全性测试在现阶段中完全是测试工具的自动行为,缺乏人为介入的手工性测试.
而对于手工性的安全测试,缺乏测试工具的辅助. 因此,开发了该工具,来完成测试人员手动的安全性测试.
测试工具介绍
主要功能为修改页面存在的JS数据。
发送自定义的POST请求。
界面为左侧的显示区域和右侧的用户测试区域:
程序启动后,可以在左侧的浏览器区域输入URL,并进行访问。若当页面存在POST的请求时会出现提示对话框,如下图:
用户可以对POST请求发送的信息进行编辑。编辑后按确定发送,或取消不发送。
页面打开后:
右侧的用户测试区,对应着:
- JS注入:修改JS的功能
- POST请求发送:发送自定义POST请求功能
- 脚本与参数:可以编写自动循环发送的POST或GET请求
- 常用工具:列举了常用到的BASE64,URLencode,MD5和随机信息的生成。
JS注入在测试中的使用
Javascript主要有用于修改页面中的JS和页面元素
1.修改页面元素
- document.getElementById("id").value='123';
复制代码
这种类型的语句对页面参数进行修改,value可以赋值未为任何非法值,如sql注入类型的
将这类的数据可以提交到表单,用于测试是否存在SQL注入的漏洞
2.修改页面中已存在的Javascript
用户可以将注入的JS function的名称写的与页面已经存在的JS名称相同.
这样,新注入的function将会把页面中存在的function覆盖.
若,某个JS是用于提交校验的行为,覆盖后,该校验行为就不在存在了
3.模拟ajax请求
用户模拟一些ajax请求,请求中的内容可以使非法的或是异常的,看服务器给与什么样的响应。
自定义POST请求在测试中的使用
用户可以在这里修改POST请求中所需要的参数。
可以修改部分:
Herf,Cookie,请求头,请求方法,请求地址,请求内容
自动测试脚本的编写
目的自动运行POST请求或GET请求的测试项目,可以循环执行。对应的语法如下:
关键字列表
- POST,GET,NewSession,BrowerSession,OUT,INT,STRING,SET,FOR,TO,NEXT
复制代码
基本语法
每行有;分号作为结尾,每个关键字,每行只出现一次
不同字区之间为空格,不能出现两个空格
POST语法
Url = 需要访问的url地址
Param= POST 请求需要带的参数
GET语法
Url = 需要访问的url地址
NewSession语法创建一个新的Session请求
BrowerSession语法
从喵咪浏览器继承一个Session请求
OUT语法输出显示1234
输出显示变量i
INT语法定义变量i
给i赋值为10
STRING语法
定义变量s;
给s赋值abcd,注意没有"引号
FOR,TO,NEXT语法
为循环语句- FOR i TO 20;
- OUT i;
- NEXT i;
复制代码
循环语句
循环主体,可以用GET,POST替换
变量i增加1
ReturnPage语法
显示上一次POST或GET请求的返回页面;
程序下载和安装
下载安装地址:http://211.99.249.32/CatExplorer/publish.htm
结束语
这个工具并不能说彻底的开发编写完成,很多功能还十分的简陋。
自动脚本的编写也不那么正规化。
实际上后续的工作主要是: - 检验这个工具在实际的安全测试中所使用的效果
- 根据使用效果继续修改该工具
- 继续根据不同的项目编写对应的测试案例
|
|