• SQL加解密注入详解


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

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

    一、SQL加解密注入原理

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

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

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

    三、SQL加解密注入实战

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

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

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

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

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

  • 相关阅读:
    javascript面向对象完全指北
    怎样优雅地增删查改(八):按用户关系查询
    利用uni-app 开发的iOS app 发布到App Store全流程
    设计模式-中介者模式
    23种设计模式(十七)观察者模式(阁瑞钛伦特软件-九耶实训)
    Java面试必会高频考题
    掌握Flink键控状态(Keyed State):深入指南与实践
    【编译原理】机测笔记
    2022年十一届认证杯(小美赛)C题思路新鲜出炉
    LeetCode 2525. 根据规则将箱子分类:优雅解法?
  • 原文地址:https://blog.csdn.net/weixin_40228200/article/details/125983674