如何在QA测试的同时完成安全测试

发表于:2016-12-26 11:34

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:点融黑帮    来源:51Testing软件测试网采编

  在QA测试WebApp的时候我们可以做一些事,同时又完成Web安全测试,这该是多有趣的事情。
  传统的安全扫描大部分都是基于爬虫的,但是如果在QA测试的同时我们就可以废弃爬虫,抛掉安全测试最费时间,等待最久的环节。
  基础架构:
  HTTP代理:
  我们采用HTTP Proxy的形式来捕获所有HTTP请求,将所有请求记录至Mysql中。
  数据库架构:
  数据库采用Mysql来记录请求,我们可以给他5个Columns (id、requests、type、value、response)。
  id为主键requests纪录着请求的url,
  type纪录着请求的方式(e.g. get、post),
  value记录着请求的详细参数(e.g. userid=10000),
  response纪录着当时请求的response,方便我们对比加入POC后的请求,用来判断是否存在漏洞
  这样我们能解析出来的url就是:
  http://www.example.com/getuserinfo?userid=10000.
  攻击模块:
  在常见的Web应用中,可能存在很多风险,考虑到迭代和拓展,我们的每一个漏洞测试都是一个模块(e.g. SQL injection、XSS、LFI…)。这样我们可以很方便的增加后续的攻击模块,比如爆出一个新的漏洞时,我们只需要编写一个新的POC并加入模块中,就可以投入生产了。
  考虑到研发周期的因素,攻击模块我们可以使用一些已经比较完善的开源程序来做(e.g. sqlmap),当整个爬虫都不变的那么重要的时候,我们的攻击模块就可以自由配置。
  任务调度模块:
  了更近一步的提到效率,与业务逻辑贴合,我们建立了一个任务分发调度模块。这个模块起的作用是把同一个URL里,同样value的URL去重,e.g. http://www.example.com/getuserinfo?userid=10000这个URL中userid的值可能会发生变化,但是我们又不用去重复测试,我们可以去掉多出来的重复的请求。如果不这样做的话,会严重影响我们测试的时间与效率。
  比如我的Web应用只有前端JS/HTML,我们就只需要使用XSS测试模块。如果我的Web应用是一个resfulAPI的话,那我就或许可以只用SQL injection的模块来测试。当然,你也可以一起使用,测试的时候可以很轻易的组合这些模块。
  漏洞报表:
  当我们测试完应用后,我们需要知道哪个URL存在或者不存在哪些种类的漏洞。所以我们需要一个展现的页面,这个页面搭建会比较简单,只需要从数据库里读出内容并且展示就可以了。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号