时间:2021-07-01 10:21:17 帮助过:6人阅读
一.sql注入产生的原因
sql注入用一句概况就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 通过控制部分SQL语句,攻击者可以查询数据库中任何自己需要的数据,利用数据库的一些特性,可以直接获取数据库服务器的系统权限。
要利用sql注入必须要满足两个必要的条件:
1)用户能够控制数据的输入
2)原本要执行的代码,拼接了用户的输入
正是由于这种拼接,导致了代码的注入。对于一个web请求来说,sql注入可能存在的URL参数,cookie,POST数据,以及HTTP消息头等。
二. 漏洞分类
根据是否回显可以分为:显示注入,盲注
根据注入类型分为: 字符型,数字型
三.检测是否存在sql注入
1.注入字符串数字类型时
1)提交一个单引号看是否会引发与正常响应不同或者报错
2)如果有错误,输入两个单引号,把后面的单引号进行转义,看错误是否消失,消失中则表明可能存在sql注入
3)进一步确定漏洞是否存在,构造”良性“输入
oracle:‘||‘foo
ms-sql:‘+‘foo
mysql:‘ ‘foo
2.注入类型为数字
1)尝试输入一个结果等于原始数字值的简单数学表达式,例如1+1,如果做出相同的响应,则表明它易于受到攻击(前提是改变数字会对响应有较大的改变)
2)如果第一个测试成功,可以用更复杂的方式:67-ASCII(‘A‘)或者51-ASCII(1)
3.时间延迟判断
主要是构造语句达到时间延迟的目的。
常用的语句:
UserName=fff‘;waitfor%20delay%20‘0:0:10‘%20--%
sql注入与sqlmap的使用
标签:错误 数字类型 .sql 请求 获取数据 时间 自己 通过 字符