Testingba工作室 2013-11-26
工作到今天已经三年有余,从开发、BA到测试,再到现在的测试管理,经历了很多,安全测试无疑也是我测试生活中浓重的一笔。已经不太记得自己是怎么样踏入安全测试这个大圈子的了,大概似乎也是项目所迫吧。从开始学习看书到逐步探索,再到现在可以稍微给安全新手一些技术上的指导,算是有了不大不小的跨越提升。
说起模糊测试,最早使用到fuzzing大概是在第一次接触Burpsuite这个套件的时候。那时候对安全测试都是一片懵懂,对模糊测试这个词更是无从定义。只是通过在intruder上的尝试,浅显的了解到模糊测试大约是用于初步探索有可能存在的安全漏洞这一方面,但是对其是怎样产生的、如何发展的、以及他准确的定义是什么、甚至这些模糊测试的语句是如何产生的都一窍不通。
也正是由于这样,才让我对安全测试有了更深入学习下去的动力吧我想。在这篇读书笔记里,我想先从我从事web安全测试的流程入手,再回归到模糊测试,也许更能体现模糊测试在安全测试整体中的重要作用:
解析、分析web应用——>制定安全策略——>测试验证机制——>测试会话管理——>测试访问控制——>测试基于输入的各种漏洞(sql注入、XSS等)——>测试逻辑缺陷——>总结分析
上面就是我在整个web安全测试工作中的流程,而模糊测试则在标红的第一步的位置。通常来说,在安全测试流程中,我们认为解析、分析web应用是整个测试工作的重中之重,它直接标识着我们测试流程的方向性以及测试结果的全面性。更细致一点说,模糊测试在这一过程中起到了指引测试方向,从而制定合理的安全策略的作用。
可能有很多人会疑惑这一点,但是在仔细看了试读章节以后,我相信大家就不会对此有任何异议了。我还是就着模糊测试的流程在做一个讲解:
1.确定测试目标
在这一步里,我们在web安全测试中需要确定的是测试的模块、甚至可以精确到某一个请求。
2.确定输入向量
这个是试读章节中的语句,我们通常在这里把这个输入向量成为有效载荷,比如我们有一个输入是username=fengluo,那么这里的fengluo就可以当做有效载荷进行载荷置换。
3.生成模糊测试数据
4.执行模糊测试数据
上面两步在已经有较为完善的工具支持下已经逐渐合成为了一个步骤,也就是自动配置模糊载荷数据并执行。其实也就是使用自动化的方式发送各种攻击字符,包括sql注入、xss等等。
5.监视异常
这里没什么可说的,在web安全测试过程中我们可能更多的用状态码、或者抓取response来查看返回是否正确正常。
6.判定发现的漏洞是否可能被利用
也就是根据上面的异常,我们可以初步确定该模块或者是该请求有可能包含哪些安全漏洞,从而让我们更好的执行后面的安全测试工作、制定最为高效的安全测试策略。
写了这么多,综上所述,随着安全问题的不断爆发,安全测试在目前的测试工作中已经体现了越来越重要的意义。而作为安全测试入门者的我们,初步掌握模糊测试无疑是我们走进安全测试大门的敲门砖!