sql注入专辑-1-sql注入原理

1 sql注入产生的原因

sql注入用一句概况就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 通过控制部分SQL语句,攻击者可以查询数据库中任何自己需要的数据,利用数据库的一些特性,可以直接获取数据库服务器的系统权限。
要利用sql注入必须要满足两个必要的条件:
1)用户能够控制数据的输入
2)原本要执行的代码,拼接了用户的输入
正是由于这种拼接,导致了代码的注入。对于一个web请求来说,sql注入可能存在的URL参数,cookie,POST数据,以及HTTP消息头等。

2 漏洞分类

根据是否回显可以分为:显示注入,盲注
根据注入类型分为: 字符型,数字型,搜索型

3 检测是否存在sql注入

字符型

  • 提交一个单引号看是否会引发与正常响应不同或者报错
  • 如果有错误,输入两个单引号,把后面的单引号进行转义,看错误是否消失,消失中则表明可能存在sql注入
  • 进一步确定漏洞是否存在,构造”良性“输入
    oracle:’||‘foo
    ms-sql:’+‘foo
    mysql:’ 'foo

数字型

  • 尝试输入一个结果等于原始数字值的简单数学表达式,例如1+1,如果做出相同的响应,则表明它易于受到攻击(前提是改变数字会对响应有较大的改变)
  • 如果第一个测试成功,可以用更复杂的方式:67-ASCII(‘A’)或者51-ASCII(1)
  • 时间延迟判断
    主要是构造语句达到时间延迟的目的。
    常用的语句:
    UserName=fff’;waitfor%20delay%20’0:0:10’%20–%

搜索型

  • %待续写

猜你喜欢

转载自blog.csdn.net/weixin_48776804/article/details/113791566