SQL注入攻击 (SQL Injection Attack)

SQL注入分类

(常见的后面再补充,先记录些不常见的)

DNSlog盲注

主要结合ceye.io(知道创宇)的这个平台来折腾。因为UNC路径原因dnslog回显只能用于windows系统。

DNSLog注入常用场景

1.SQL注入中的盲注 在sql注入时为布尔盲注、时间盲注,注入的效率低且线程高容易被waf拦截,又或者是目标站点没有回显

2.无回显的命令执行 我们在读取文件、执行命令注入等操作时无法明显的确认是否利用成功

3.无回显的SSRF

REF: DNSlog注入学习 《网络攻防实战研究:MySQL数据库安全》

宽字节注入

什么是宽字节? GB2312、GBK、GB18030、BIG5、Shift_JIS等这些都是常说的宽字节,实际为2字节。(比如:中文、日本、韩文等编码) 而长度为1个字节的是窄字节。

宽字节注入原理

宽字节注入原理示意图

注意:ASCII码大于128才能到汉字的范围。

宽字节注入方法

在注入点后键入%df,然后按照正常的注入流程开始注入。

eg:http://127.0.0.1/sqli-labs/Less-32/?id=%df' union select 1,(select user()),3 --+

宽字节注入防范措施

  1. 数据库使用utf-8编码 (中文、日本、韩文等编码都是宽字节,所以都有可能存在宽字节注入漏洞)

  2. php使用mysql_real_escape_string时,要设置mysql_set_charset('gbk',$conn);

  3. 设置mysql字符集参数,character_set_client=binary

二次编码注入

二次注入