sql注入与sqlmap的使用

一.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--%

猜你喜欢

转载自www.cnblogs.com/yonghegn/p/10066123.html