sql注入攻击 sql注入如何绕过单引号过滤?非常感谢?
浏览量:1739
时间:2021-03-11 13:01:31
作者:admin
sql注入如何绕过单引号过滤?非常感谢?
可以利用参数化的查询方式 String cmd="select a,b from t where c=@arg,然后给@arg 赋值,无论有没有引号都会当作变量来处理
SQL注入点拦截了单引号,是不是就无解了?
并不是,太天真了。sql注入的方法有多种,不一定非得用单引号。SQL注入一般用于表单提交,尤其是登录表单,通过提交一些sql语句的组合,使后台验证逻辑出错,顺利进入后台。
方法一:
先猜表名
And (Select count(*) from 表名)<>0
猜列名
And (Select count(列名) from 表名)<>0
返回正确的,那么写的表名或列名就是正确,如果服务器没有关系错误提醒,就会将错误的sql语句信息打印出来,从而就获取到真正的表名、列名。
方法二:
跳过登录后台
常见的 " or 1="1
比如后台验证就变成
select name,pass from tbAdmin where name="" or 1="1" and pass="123456"
1="1"为真,这判断就一直成立。
当然还有很多种sql注入方式,大都是利用sql语句直接查询的漏洞,或者报错信息。
只拦截了单引号还不够,还有空格,等号等等一些符号。而且项目中千万避免前端提交的表单直接用原生sql语句查询,尽量用框架封装的方法,这样能很大程度上减少被sql注入的风险。毕竟前端提交的数据都是不可信的。
怎么绕过这个SQL注入后面的单引号?
如果你想把单引号当做字符串来处理,一个单引号你就需要用三个单引号来代替!
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。