sql注入--9宽字节注入

宽字节注入

简介

宽字节注入就是因为gbk编码方式需要两个ascii组合来解码,所以很形象的叫做宽字节。

原理

当传递一个参数id=1‘得时候,当我们输入这个单引号,会被认为是非法字符,会被过滤函数添加“\”给过滤掉,所以我们想要程序接受我们传递得参数中包含单引号,那么就需要把这个转义字符“\”干掉,那如何才能干掉呢?当http协议传输得时候,是要经过url编码的,如果这个编码完成后,传递到服务器时,我们可以在单引号前加上一个%81这样得编码,最后这样解码得时候,这个%81就会和“/”对应得编码相结合按照gbk编码要求去解码,最后只剩下个单引号。

通俗解释:输入id=1’ (参数不一定是id) --> ’ 会被过滤函数添加 \ 给过滤掉

​ 不被过滤掉的方法就是去除 \

注入条件

1.数据库查询设置为GBK编码
2.使用了addslashes(),mysql_real_escape_string(),mysql_escape_string()之类的转义函数

附:GBK编码表
https://www.qqxiuzi.cn/zh/hanzi-gbk-bianma.php

靶场利用

sqli-labs-master中的less-36

注意事项

当我们注入时,写入语句中含有类似于 where table_schema=database() and table_name =’ users ’ 时,语句中的单引号也会被过滤函数过滤掉。

1.通过16进制绕过过滤

将字符转换成16进制输入

2.通过使用嵌套查询绕过过滤

 where table_schema=database() and table_name = (select table_name from informaton_schema.tables where table_schema=database() limit 0,1)    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术骨干小李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值