摘要: 近来在网路游侠的blog是看到一篇文章:《[网路游侠:WEB应用安全扫描产品概述] 》列举了一些国内外商业的免费的web扫描器及其的一些特点… 他这个问题是在产品推荐的角度上的,可以看的出来web扫描平台的市场竞争还是非常大。 在实现的技术是来说,他们都是基于...
近来在网路游侠的blog是看到一篇文章:《[网路游侠:WEB应用安全扫描产品概述] 》列举了一些国内外商业的免费的web扫描器及其的一些特点… 他这个问题是在产品推荐的角度上的,可以看的出来web扫描平台的市场竞争还是非常大。
在实现的技术是来说,他们都是基于url爬行的基础上的,对于基本上很多都是通过正则提取url及参数,只是有的提取url和参数不太一样,很少直接提取,一般都是通过本地代理[类似于代理中间人攻击]来提取。这样的爬行对于web2.0的时代来说,已经有那么点落后了,如复杂的ajax,flash应用,以及js混淆等…
那么我们或许可以寻找新的模式或者框架去突破… 在hi群讨论的时候,我问了下知道创宇的ic总,他们的爬行工具[http://www.scanv.com]突破上面的那些时,他们说ajax js混淆的基本是可以的,他们应用的多个策略,具体对于js/ajax的使用了js虚拟机去解析提取url… 很牛的东西!!
其实抛开web扫描器里Rules库不谈的话,那么爬行的url及参数量的多少决定成败。黑盒测试在sdl流程里是不可少的一个非常重要的过程。黑盒测试的效果也和这个量有很大的关系!在hi群讨论这些问题的时候,kEvin#80sec.com提到了一个非常好的方法,通过web server的日志提取url,这个是一个非常快捷有效的方法[对于get提交的参数]…但是弊端也很多,比如大流量的站日志处理很麻烦,post的参数没有记录,如果功能没有人使用的话就测试不了等等。对于他这个url提取,都是提取到用户正常使用web应用功能的url和参数,而不是想那些单纯爬行的工具 一个页面一个页面去爬,爬出来很多重复的失效的url。他这个方法让我想起几年前我的一个思路:
“在功能测试(或者正常使用)的同时进行安全测试”
不管是ajax也好、flash也好或者是其他什么,在功能测试或者正常使用者肯定会进行交互炒作进行点击,那么你就通过抓包,本地代理,或者浏览器插件等方法提取对应的http包[包括了url及参数]进行安全测试。你可能回问,这个一样取决于测试者访问及具体使用的功能?是的,没有错!不过如果是“很多很多”人一起进行呢?这样就策出了一个流行概念:“云” 。具体你可以在公司的产品测试部或者所有员工的pc是都安装一个小小的插件[或者还有其他的思路如在网关处提取],用来提取用户浏览或者操作时提取url及参数 进行安全测试。这样在很大的意义上加速了sdl的流程,节约成本。
当然上面这个思路也可以和目前那些产品的方式相结合。
本文来源 http://hi.baidu.com/hi_heige/blog/item/ac779545c9c99b47510ffee6.html