渗透技巧对于代码审计的意义在哪?
我们知道代码审计的流程中有漏洞发现及payload构造,有的时候在漏洞发现阶段灰盒测试比源代码审计的速度更快效率更高,源代码审计,你得看代码吧,而灰盒测试时,测试语句以上,漏洞就发现了。payload的出现是为了证明漏洞的存在,而payload构造,单单作为一个开发程序员,或者渗透技巧菜鸟即便明白攻击原理,在漏洞证明时,也不一定能够证明出来。为什么?有一些奇葩的写法,是开发程序员或渗透技巧的菜鸟不曾接触过的,或者说你渗透经验不足,是不太可能能够证明漏洞存在的。这时候渗透技巧就显得尤为重要。
代码端渗透测试技巧的掌握是对各种漏洞类型的灰盒测试,遇到的各种环境,条件,限制越多,你的渗透技巧就越丰富。
这里举一下常规漏洞类型有哪些。
注入类型
sql注入
回显注入
union注入 报错注入 宽字节注入 二次注入 插入/修改/删除型注入...
无回显注入
延时注入 盲注 利用DNS注入...
XML注入
XPATH注入
json注入
CRLF注入
header头注入(tip:例如 xff注入 ip注入等)
XSS跨站请求攻击
存储型
反射型
DOM型
CSRF跨站请求伪造
POST型
GET型
文件类型漏洞
上传漏洞
截断00
不同中间件的解析(for:IIS/6.0/7.0/7.5/nginx/apache...)
黑名单绕过
../绕过
竞争条件漏洞
文件参数修改绕过
文件删除漏洞
文件包含漏洞
远程包含
本地包含
伪协议
文件下载漏洞
执行漏洞
代码执行
命令执行
变量覆盖漏洞
URL跳转
SSRF服务器请求伪造
SSTI 服务端模板注入
反序列化
XXE
信息泄露
逻辑漏洞有:
支付绕过
验证码绕过
忘记密码绕过
登录绕过
订单篡改
越权漏洞
session/cookie 身份认证绕过
请求重放
弱Token设计缺陷绕过
如果往细里划分还有很多
还有我没写的 大家补充
还有其他相关的,如数据库特性
当然 在灰盒黑盒测试时,能用工具的 就别手工了,解放双手很重要。
不单说每一种类型漏洞,仅仅每一种漏洞都有各种各样的常规技巧及“奇淫绝技”来辅助我们去进行代码审计中漏洞挖掘后的漏洞证明,足以感受到渗透技巧在代码审计中的重要性。在今后我们在对每一种漏洞剖析时,都会尽可能的去提及各种渗透技巧。