1.Vulnerability
定义
通常把能够引起软件做一些“超出设计范围的事情”的 bug 称为漏洞(vulnerability)
种类
- 功能性逻辑缺陷(bug):影响软件的正常功能,例如,执行结果错误、图标显示错误等
- 安全性逻辑缺陷(漏洞):通常情况下不影响软件的正常功能,但被攻击者成功利用后,有可能引起软件去执行额外的恶意代码。常见的漏洞包括软件中的缓冲区溢出漏洞、网站中的跨站脚本漏洞(XSS)、SQL 注入漏洞等。
Vulnerability Attack
漏洞挖掘
一般安全性逻辑缺陷很难被常规QA测试出来,其不会影响系统正常的工作,漏洞的挖掘实际上是一种高级QA,在学术界,一般采用动态分析的方法来查找漏洞,但在工程界,一般采用“灰”盒测试的方法–FUZZ来寻找漏洞。
漏洞分析
当 fuzz 捕捉到软件中一个严重的异常时,当您想透过厂商公布的简单描述了解漏洞细节的时候,您就需要具备一定的漏洞分析能力。一般情况下,我们需要调试二进制级别的程序。在分析漏洞时,如果能够搜索到 POC(proof of concept)代码,就能重现漏洞被触发的现场。这时可以使用调试器观察漏洞的细节,或者利用一些工具(如 Paimei)更方便地找到漏洞的触发点
漏洞利用
包括内存漏洞(堆栈溢出)和 Web 应用漏洞(脚本注入)等