:::info 💡 根据 遗忘曲线:如果没有记录和回顾,6天后便会忘记75%的内容
笔记正是帮助你记录和回顾的工具,不必拘泥于形式,其核心是:记录、翻看、思考 :::

书名 OWASP安全测试指南
作者 阿蒙
状态 待开始 阅读中 已读完
简介 为了在测试的时候,流程更清晰,更系统,不遗漏漏洞点,特根据owasp 安全测试指南V4来总结自己的一套方法论。

思维导图

用思维导图,结构化记录本书的核心观点。

OWASP方法论-输入验证篇 - 图1

输入验证

xss

跨站脚本攻击。

不多说,见缝就插。 但是为了准确率,可以着重留意请求包和响应包都有的参数,因为xss是输入验证漏洞,必须要可控,所以请求包必须有,又因为xss要在前端显示,所以响应包一般也有。 三个种类:反射型,存储型,dom型(self-xss)

HTTP谓词伪造

我们叫做不安全的HTTP方法。一般应用只需要GET和POST就够了,其他的方法应该禁用。

把请求方法改成OPTIONS,观察响应包的allow头。 如果OPTIONS被禁用了,只能手动一个个试试了。 PUT,DELETE,TRACE等方法被认为是不安全的HTTP方法,用不到就禁了。

HTTP参数污染

简称HPP,测试应用对于一样的参数是如何处理的,可能这不算是一个漏洞,因为危害是视后端如果处理而定的。可能没什么影响,可能引发一些异常。

一般发生在查询参数,如?id=1,此时修改为?id=1&id=1。 有些时候,可以然后绕过防护,或者跳转?url=1.html&url=www.baidu.com。

注入

这个是耳熟能详的漏洞了,不多赘述,这个可以做一个专题来讲了。

MySQL注入 Oracle注入 SQL server注入 Postgre SQL注入 MS Access注入 NoSQL注入 LDAP注入 ORM注入 XML注入 SSI注入 XPath注入 IMAP/SMTP注入 代码注入(文件包含) 命令注入

缓冲区溢出

溢出分为栈溢出,堆溢出,格式化字符串溢出,不同的溢出有不同的测试方法。

CRLF

HTTP分割/拆分,和SQL注入和xss很像,不同的是,作用的对象不同,SQL注入的对象是数据库,xss的对象是网站主体,crlf的对象是响应头。测试方法也很像,SQL注入是闭合单引号,xss是闭合标签,crlf则是闭合回车换行\r\n。因为在HTTP中,是以\r\n来结束一行的。

测试的时候一般是在有重定向或者跳转的地方。比如在url中有这样的参数:src=a.com,则我们的payload:url=a.com\r\nset-cookie: dddd。 可以结合会话固定漏洞,set-cookie成功的话,攻击者就可以控制cookie。 可以结合xss,响应包中头和主体是以两个\r\n分割的,所以我们的payload:\r\n

这个漏洞可测可不测,非常少见,随着框架的成熟,这类漏洞几乎绝迹了。况且没什么用,如果有会话固定,那么修复会话固定就可以了,如果有xss,那么页面肯定也能插,不必这么麻烦,所以,鸡肋。