一、手动测试
1、SQL注入
原理:将有恶意的SQL语句作为参数进行输入,使得服务器执行该恶意的SQL命令,从而获得数据库的相关信息或篡改数据库的数据。
原因:开发对输入没有做细致的过滤。
防护:加密、过滤输入、使用自定义的错误提示等。
注入:
1)先输入猜测的表名,如果返回成功,
And (Select count(*) from 表名)<>0
说明该表名正确;然后再猜测列名,同理,如果返回成功,说明该列名正确。
And (Select count(列名) from 表名)<>0
2)后台身份验证绕过
前提是:账号和密码在同一条查询语句;密码不加密。
原理:验证绕过漏洞就是’or’=‘or’后台绕过漏洞,利用的就是AND和OR的运算规则,从而造成后台脚本逻辑性错误。
3)利用万能语句(’or 1=1#)屏蔽密码进行登录
比如:在用户名输入框中输入:’or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为:
select * from users where username=’’ or 1=1#’ and password=md5(’’)
语义分析:“#”在mysql中是注释符,这样井号后面的内容将被mysql视为注释内容,这样就不会去执行了。
例子:
http://www.guoshang.tk/news/read.php?id=50
1、 可以看出这是一个动态URL,也就是说可以在地址栏中传参,这是SQL注入的基本条件。
2、判断是否存在sql注入可能。
在地址后面空上一格,敲入 and 1=1 ,然后 and 1=2 。敲入 and 1=1 帖子返回正常, and 1=2 时帖子返回出错,说明sql语句被执行,程序没有对敏感字符进行过滤。现在可以确定此处是一个SQL注入点,
http://www.guoshang
web应用的安全测试~
最新推荐文章于 2024-07-23 20:24:08 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)