宽字节注入原理
程序员为了防止sql注入 ,对用户输入中的单引号(')进行处理,在单引号前加上斜杠()进行转义 ,这样被处理后的sql语句中,单引号不再具有'作用',仅仅是内容'而已。
换句话说,这个单引号无法发挥和前后单引号闭合的作用 ,仅仅成为内容。
宽字节注入方法
黑盒
- 在注入点后键入%df ,然后按照正常的注入流程开始注入
- 注意:前一个字符的ascii码要大于128 ,两个字符才能组合成汉字
白盒
1. 查看MySql编码是否为GBK 格式
2. 是否使用了 preg_replace() 函数把单引号替换成'
3. 是否使用了 addslashes() 函数进行转义
4. 是否使用了 **mysql_real_escape_string() ** 函数进行转义
http 头注入常见http头中可能被污染的参数有这些
HTTP头注入的重要性
http头注入概述
什么是HTTP头注入?
- web程序代码中把用户提交的HTTP请求包的头信息未做过滤就直接带入到数据库中执行 。
HTTP头注入的检测方法
- 通过修改参数 来判断是否存在漏洞
造成HTTP头注入的原因
1. 在网站代码中的ip字段与数据库有交互
2. 代码中使用了php超全局变量$_SERVER[ ]
如何修复HTTP头注入?
1. 在设置HTTP响应头的代码中,过滤回车换行 (%0d%0a、%0D%0A)字符。
2. 不采用有漏洞版本的 apache服务器
3. 对参数做合法性校验以及长度限制 ,谨慎的根据用户所传入参数做http返回包的header设置 。
二次编码注入url编码概述
url编码形式
为什么要进行url编码?
url编码作用
二次编码注入原理
相关函数:urldecode() , rawurldecode()
原理:
base64注入base64编码概述
base64注入原理
针对传递的参数被base64加密后的注入点进行注入 ,这种方式常用来绕过一些WAF 的检测。
base64注入方法