2016 - 2024

感恩一路有你

sql注入绕过 SQL注入点拦截了单引号,是不是就无解了?

浏览量:2833 时间:2021-03-16 18:29:13 作者:admin

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注入的风险。毕竟前端提交的数据都是不可信的。

如何判断PHP源码是否存在SQL注入漏洞?

判断是否存在SQL注入首先找到可能的注入点;比如常见的get,post,甚至cookie,传递参数到PHP,然后参数被拼接到SQL中,如果后端接收参数后没有进行验证过滤,就很可能会出现注入。比如xxx.com?id=321,id就很可能是注入点。

说白了就是不要相信用户输入,对用户可控的参数进行严格校验。注意是严格校验!简单的去空格,或者是特殊字符替换很容易绕过。

如果已经有原码,可以进行代码审计,进行逐一排查。也可以搭建本地环境使用类似于sqlmap这样的自动化工具进行可以链接的检测。

个人理解仅供参考,如有偏颇望批评指正!

sql注入绕过 sql注入过滤单引号绕过 sql注入select绕过

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。