宽字节注入

半腔热情 提交于 2020-02-11 20:39:50
当传入id=1'时,传入的单引号又被转义符(反斜线)转义,导致参数ID无法逃逸单引号的包围,所以在一般情况下,此处是不存在SQL注入漏洞的。不过有一个特例,就是当数据库的编码为GBK时,可以使用宽字节注入,宽字节的格式是在地址后先加上一个%df,再加上单引号,因为反斜线的编码为%5c,而在GBK编码中,%df%5c是繁体字“軍”,所以这时,单引号成功逃脱,爆出错误。
 
什么情况下使用宽字节注入:1、要PHP编码和数据库不同(常见的是GBK、UTF-8非unicode)
                                           2、当看到魔术引号直接尝试宽字节(数据库编码必须是GBK)
 
开网站靶场进行测试是否存在注入
当输入时发现回显是正确的
观察我的引号发现引号倍转义了那么我们需要让他的转移字符无效所以我在引号的左边加入了一个%df使转义不产生作用引号不产生发现会先错误证明成功了
然后使用order by判断字段数得到3个字段
使用联合查询语句查到2,3 可用
接着使用59.63.200.79:8812/New/WidecharBased/RankOne/sql-one/?id=1%df' and 1=2 union select 1,2,database()--+database()查询数据库名称得到为security
在查询标明的时候出现了问题
发现security无法直接使用所以进行转十六进制测试一下
可以得到表名证明成功输出然后查询字段明得到2个字段 flag和zkaq
最后查内容得到了flag
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!