讨论安全漏洞的原理,谈谈工具的局限。

先说下扫描工具的原理:

扫描工具可以看做由两部分组成:爬虫+校验机构。爬虫的作用是搜集整个被采集对象的链接,然后校验机构对这些链接逐一进行验证。

说扫描工具的局限:

局限1:扫描未必全面

   一个网站,能不能被扫描全面,很大程度取决于爬虫搜集链接的能力。我做过爬虫的测试,所以大致知道爬虫的原理,就是对给定的入口地址发起请求,然后从返 回的内容中抽取链接,然后再请求抽取到的链接,如此反复。包含在HTML中的链接,很容易被抽取到,但是由js生成的链接,抽取的时候就有些难度了,由 Flash生成的链接,更是难于被抽取到。此时有人想说图片验证码了吧?我们做测试可以要求网站开绿灯,暂时屏蔽验证码,这个倒可以不考虑。目前ajax 技术的流行,更让爬虫搜集链接的能力显得捉襟见肘。所以这就暴露出了扫描工具的第一个局限,扫描未必全面。

局限2:对屏蔽错误信息的网站效果不好

  如果你觉得扫描不全面可以通过多分析和从不同的入口地址多测试几遍可以克服的话,这个局限就稍微比上边那个有点难度了。这个主要是“校验机构”的局限,校验机构的工作原理是对特定格式的链接或者特定格式的表单匹配特定的模拟攻击用例,模拟攻击。我们知道,攻击是一个请求的过程,也就是一个request,而攻击的结果怎么看?只能从response里看了。以SQL注入为例,当发送一个1'这样的参数值到后台之后,如果返回页面内容中包含了SQLException,那么扫描工具就认定它是一个SQL注入漏洞。但是如果网站设置了错误页面,在有异常发生时直接跳转到一个错误页面,告诉你“出错啦!”,然后再没其它信息,采集工具怎么判断是否存在漏洞?难道你去跟研发人员说“麻烦您把错误页面去掉”吗?要真说了,我们高傲的研发人员肯定不会给你好脸色的。

局限3:对特定的场景不适合

   局限3跟局限2多少有些类似,但性质不太一样,局限3是指某些特定场景。扫描工具扫描bug的原理,1和2里叙述的差不多了,这里我们举两个例子吧,看 了例子大家看看怎么用扫描工具来发现这俩漏洞,要是不能发现,那就是扫描工具的局限了。第一个:有个网站允许用户注册,用户注册后还允许用户修改个人信 息,但是修改个人信息的这个地方有个SQL注入漏洞。我们知道,一般修改个人信息的SQL大致是这样的update [userinfo] set password='1111', email='abc@163.com' where uid='男孩子',如果一个用户修改自己密码的时候把密码设为了1111'--,这样,如果存在SQL注入漏洞,所有注册用户的密码都变成了1111。 这里有漏洞吗?有!但是工具能发现吗?除非查看数据库, 否则根本发现不了这问题。再看第二个:站内消息我们很多时候都用到,假设站内消息存在XSS漏洞,那么A给B发了这么一段恶意的脚本,但是从A那边看跟普 通消息的发送是没什么区别的,所以扫描工具就发现不了这个问题,除非再用账号B来登录进行扫描。但是,这个看着简单,实际上操作起来却比较难。你怎么知道 扫描工具模拟攻击的时候发消息给了B,而没给C或者D或者E呢?所以这个时限起来也是不现实的。同样道理的还有在外网提交了留言,到管理台审核这种模式, 都存在类似问题。

  以上只是列举了3点,算是提醒大家多注意一点工具以外的事儿吧,测试这个东西,不是拿个工具就能搞定的。我说这些不是 说大家以后不要用工具,而是要正确的用工具。一个测试申请提交以后,应该首先分析哪些地方可能是工具覆盖不到的,把这些地方先人工检查,剩下的再用工具做 全站覆盖扫描。

web安全测试工具的局限性的更多相关文章

  1. 最佳的 14 个免费的响应式 Web 设计测试工具

    一旦你决定要搭建一个网站就应该已经制定了设计标准.你认为下一步该做什么呢?测试!我使用“测试”这个词来检测你网站对不同屏幕和浏览器尺寸的响应情况.测试在响应式网页设计的过程中是很重要的一步.如果你明白 ...

  2. web压力测试工具

    ab apache 自带的web压力测试工具,window和linux下均有. 命令行:./ab -c 100 -n 1000 http://www.baidu.com 说明: -c 表示同时处理10 ...

  3. 推荐一个linux下的web压力测试工具神器webbench

    推荐一个linux下的web压力测试工具神器webbench2014-04-30 09:35:29   来源:   评论:0 点击:880 用多了apache的ab工具之后你就会发现ab存在很多问题, ...

  4. python的web压力测试工具-pylot安装使用

    http://blog.csdn.net/chenggong2dm/article/details/10106517 pylot是python编写的一款web压力测试工具.使用比较简单.而且测试结果相 ...

  5. 开源Web安全测试工具调研

    开源Web安全测试工具调研 http://blog.csdn.net/testing_is_believing/article/details/22302087

  6. 12个强大的Web服务测试工具

    在过去的几年中,web服务或API的普及和使用有所增加. web服务或API是程序或软件组件的集合,可以帮助应用程序进行交互或通过形成其他应用程序或服务器之间的连接执行一些进程/事务处理.基本上有两种 ...

  7. web压力测试工具(小而精)

    实际的测试过程中,我们一般都是采用A.B两台机器,一台跑Web服务,另外一台跑ab测试.也有的情况是单机对单机可能测不出结果,那就要采用很多台机器同是跑AB去请求一台机器进行测试,根据多台机器反馈的结 ...

  8. Web Service测试工具小汇

    1..NET WebService Studio 这款工具出自微软内部,最大的优点是可视化很好,不用去看那些XML文件,WebService的基础内容就有XML,但是测试中Case过多,每次测试结果都 ...

  9. Web模糊测试工具Powerfuzzer

    Web模糊测试工具Powerfuzzer   Powerfuzzer是Kali Linux自带的一款Web模糊测试工具.该工具基于各种开源模糊测试工具构建,集成了大量安全信息.该工具高度智能化,它能根 ...

随机推荐

  1. owl-carousel轮播插件的使用

    插件github地址:https://github.com/OwlFonk/OwlCarousel: 插件官网演示地址:http://owlgraphic.com/owlcarousel/: 1.选择 ...

  2. 解析XML的几种方法之SAX解析

    假期总结不能停,坚持坚持....接下来总结一下XMl和json的解析和生成.. 解析XML的四种方法,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址: DOM:在现 ...

  3. 《android传感器高级编程》译者序

    翻看手机中的应用,就能发现大多数应用都已经使用了传感器.让微信彻底火起来的“附近的人”和“摇一摇”.碰一碰交换信息的Bump.各种运动记录app.神奇的“磁力探测仪”.火爆的游戏Temple Run… ...

  4. ListView的addHeaderView()方法相关问题

    使用listView.addHeaderView(view) 可以在 listView 上方添加一个view视图 ,使listView和这个view连接在一起 效果上看上去是一个整体 一般用于上拉刷新 ...

  5. 在Mac上配置Android adb命令

    一 adb定义: adb(android debug bridge)是android系统中的一种命令行工具,通过它可以和android设备或模拟器通信. 二 在Mac上的配置过程 启动终端 进入当前用 ...

  6. android拍照选择图片上传服务器自定义控件

    做android项目的时候总免不了遇到图片上传功能,虽然就是调用android系统的拍照和相册选择功能,但是总面部了把一大推代码写在activity里,看上去一大推代码头都昏了.不如把这些功能都集成一 ...

  7. iOS开发之网络数据解析(一)--JSON解析简介

    前言:对服务器请求之后,返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) 本篇随便先讲解JSON解析. 正文: 关于JSON: JSON是一种轻量级的数据格式,一般用于数据交互 ...

  8. Linux 基础知识----shell

    1.file title: #!/bin/bash 2.input: echo $1 echo $2 3.if # ifif [ "$1" = "N" ]the ...

  9. linux把EDT时间修改为CST格式

    初始时间:2012年 09月 14日 星期五 18:15:33 EDT [root@test ~]# mv /etc/localtime /etc/localtime.bak [root@test ~ ...

  10. Effective Java 63 Include failure-capture information in detail message

    Principle To capture the failure, the detail message of an exception should contain the values of al ...