sql注入学习笔记,什么是sql注入,如何寻找漏洞,如何注入攻击,如何预防注入

什么是SQL注入

  • 如何理解sql注入?

    sql注入是一种将sql代码添加到输入参数中,传递到sql服务器解析并执行的一种攻击手法

    示例:

       本地一段代码为get获取id值,输出实际执行sql以及查询id对应内容。

       当id值传为1时,执行结果如下:

      

                        这是正常请求情况,而当我们往id传的参数中注入sql代码时,便可以根据自己需求查询自己想要获取的内容,例如:

       

                      id值传参数为  -1 OR 1=1 ,此时执行代码中id值带入了我们传参数的sql代码,  1=1 为真,OR 1=1便会查出表中所有的内容。            达到攻击目的。

                       所以sql注入攻击就是输入参数未经过滤,直接拼接到sql语句中,解析执行,达到预想之外的行为。

  • sql注入是如何产生的?

      1.web开发人员无法保证所有的输入都已经过滤

      2.攻击者利用发送给sql服务器的输入数据构造可执行代码

      3.数据库未作相应的安全配置(对web应用设置特定的数据库账号,而不使用root或管理员账号,特定数据库账号给予一些简单操作的权限,回收一些类似drop的操作权限)

如何寻找SQL注入漏洞

  • 如何寻找sql注入漏洞?

   (借助逻辑推理)

   1.识别web应用中所有输入点

       web应用中的输入包含三点:get,post,http头信息

   2.了解哪些类型请求会触发异常

       <1>比如get信息请求,获取文章id返回文章内容,当在get传递的id参数值后加“"”双引号,请求结果就会出现数据库异常错误.

        

                      <2>post请求示例,提交文章标题和文章内容,添加入库,正常情况是:

                                

                               提交入库的sql如下:

                               

                               但是当我们把标题输入为   标题"  ,提交后便会触发sql异常:

                               

   3.检测服务器相应中的异常

如何进行SQL注入攻击 

猜你喜欢

转载自www.cnblogs.com/gyrgyr/p/9876569.html