宽字节注入适用于cms和数据库对字符串的编码方式不统一、WAF利用
AddSlashes()等函数对敏感字符进行转义的场景。
统一的国际规范的理想状态是所有应用程序都使用Unicode编码,所有的网站
都使用UTF-8编码。但因为一些历史原因,国内及国外(特别是非英语国家)的一些cms仍然使用着自己国家的一套编码(如GBK);也有一些cms为了考
虑老用户,出了GBK和 UTF-8两个版本。
一个GBK编码汉字,占用2个字节;一个UTF-8编码的汉字,占用3-4个字节。当Web应用程序的编码方式为GBK,而数据库的编码方式为UTF-8,且 WAF利用AddSlashes()等函数对敏感字符进行转义时,此时可以利用Web应用程序
和数据库编码方式上的差异,想办法将‘前面添加的转义符\除掉,以实现注入。
1.访问SQLi-Labs 网站
在攻击机 Pentest-Atk打开FireFox浏览器,并访问靶机A-SQLi-Labs 上的SQLi-Labs网站Less-32。访问的URL为:
http://[靶机 IP]/sqli-labs/Less-32/(注意大小写)
登录后,根据网页提示,先给定一个GET参数,即:
http ://[靶机IP]/sqli-labs/Less-32/ ?id=1
此时页面显示 id=1的用户名 Dump、密码 Dump 。