SQL加解密注入详解

今天继续给大家介绍Linux运维相关知识,本文主要内容是SQL加解密注入。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、SQL加解密注入原理

SQL加解密注入,是特指一种特殊的注入形式,即注入点并没有直接把输入的信息传输到后台,而是通过进行base64编码等形式处理后,再传输到后台。SQL加解密注入的数据包如下所示:
SQL加解密注入详解_第1张图片
从上图中可以看出,在数据包的Cookie字段,有一个uname参数,该参数的值是一个先经过url编码,然后再经过base64编码的值,如下所示:
SQL加解密注入详解_第2张图片
在这种情况下,我们就可以尝试对uname参数进行SQL注入尝试,并且在尝试时要注意对SQL注入的语句进行base64加密。

二、SQL加解密注入靶场逻辑介绍

下面,我们通过一个实战,来进行SQL加解密注入。我们使用sqli_lab的靶场第二阶段21关作为我们的目标靶场,我们登录靶场后,结果如下所示:
SQL加解密注入详解_第3张图片
我们查看该页面的php源代码,发现有一个check_input的函数,该函数会对一个参数进行过滤,从而起到防止SQL注入攻击的效果,该函数如下所示:
SQL加解密注入详解_第4张图片
我们可以看到,该页面的php代码逻辑是,如果采用POST的方式传入用户名和密码,那么就会对传入的uname和password参数使用check_input函数进行过滤,如下所示:
SQL加解密注入详解_第5张图片
但是,如果我们使用cookie的方式传入uname参数,则不会进行check_input的过滤,如下所示:
SQL加解密注入详解_第6张图片
因此,我们可以想到,我们可以阵地cookie方式提交的uname参数,来进行SQL注入的检验,这就是SQL加解密注入。

三、SQL加解密注入实战

针对上述靶场,我们开始进行SQL加解密注入。
首先,我们狗仔SQL注入的payload,原始的payload如下所示:

admin') and updatexml(1,concat(0x7e,(database()),0x7e),0)#

我们将其进行Base64编码,然后再进行URL编码(该过程可以借助Burpsuit的加解密模块),最终结果如下所示:
SQL加解密注入详解_第7张图片
将得到的最终的Payload放到uname参数的值执行,结果如下所示:
SQL加解密注入详解_第8张图片
注意看上图中红线部分,可以看出,我们成功得到了目标网站的数据库名!
同样的道理,我们也可以构造其他的Payload,比如说如下可以获取该数据库下所有数据表的payload。

admin') and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),0)#

将其进项完全相同的处理,如下所示:
SQL加解密注入详解_第9张图片
之后将其复制成uname参数的值,结果如下所示:
SQL加解密注入详解_第10张图片
从上图可以看出,我们成功获得了当前数据库下所有的数据表信息,我们的实验成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

你可能感兴趣的:(渗透测试,SQL注入,加解密注入,渗透测试,信息安全,web攻击)