• 5-13sqli暴力破解在sqli漏洞中的应用


    通过暴力破解的方式,sql注入的漏洞,去猜解表名和列名,在之前的案例里面,我们都是通过information_schema这个数据库,去获取信息,但是很多时候,information_schema这个权限会被屏蔽掉,也就是说,对当前存在的sql注入漏洞的这个用户,它可能没有权限去读information_schema,那用户可能遇到的不是mysql的数据库,可能是其它的数据库,像其它的数据库可能没有像mysql一样提供实例,来给你提供相关的接口,给你做查询,这个时候,要去获取数据库的信息,其实是比较麻烦的,常用的做法就是用暴力破解

    我们可以通过这样的payload做个测试

    kobe' and exists(select * from aa)#
    
    kobe' and exists(select id from users)#
    
    • 1
    • 2
    • 3

    首先前面做闭合,然后跟个and去判断,程序会先把前面的字符串去做查询,同时会把and去做个逻辑运算符,去运算后面的内容是不是存在,select * from aa,这个aa是我们猜测的部分,这个时候,不知道后台会有几个表,表的名字是什么,这个时候,我们就可以select * from 表名,这个表名是字典,从这个字典里面,我们依次遍历的去做查询,如果说,这个表不存在,那这个and连接的前后,对应的逻辑就是假,那如果这个and存在,拼在一起就是真,在基于真假的盲注里面,我们就可以通过真假去判断,如果说,后台有报错,那我们也可以基于报错信息来判断

    我们把payload提交一下,

    kobe' and exists(select * from aa)#
    
    • 1

    在这里插入图片描述

    默认做为pikachu数据库的表,默认不存在,我们把数据包用BP抓起来,

    在这里插入图片描述

    然后把这个数据包发送到intruder里面去,我们暴力破解的对象是aa,aa是我们的表名,模式选择狙击手,添加字典

    在这里插入图片描述

    options里面,有一个grep-match,我们把它清掉

    在这里插入图片描述

    清掉之后,我们自己加一个通用的部分,doesn’t exist

    在这里插入图片描述

    然后这个时候,我们开始跑一下

    在这里插入图片描述

    只有users这个请求是没有flag的,那就意味着,我们猜测出这个表名是users

    按照这个思路,我们就可以猜出表的名字,知道这个表的名字,我们就可以去猜测列的名字,

    kobe' and exists(select id from users)#
    
    • 1

    在这里插入图片描述

    把对应的数据包抓下来,同样的,我们可以把它发送到intruder,对id这个字段进行爆破,直到把对应的id猜出来,这个实验就不演示了

    在这里插入图片描述

    思路很简单,主要是为了告诉大家,当我们面对的数据库不是mysql的时候,或者说,我们没有权限去读information_schema之后,我们应该通过什么样的方式,去获取后端数据库的表名、列名,进一步获取相关的数据,用暴力破解的方式就是其中比较有趣的方式

  • 相关阅读:
    计算机毕业设计Java校园课室资源预约系统设计与实现(系统+源码+mysql数据库+lw文档)
    利用异常实现短期hook
    IDEA中 tomcat 控制台中文乱码解决
    .netcore基础知识(一)
    (十二)Spring IoC注解式开发
    《深度学习》深度学习 框架、流程解析、动态展示及推导
    拓扑排序及其衍生
    Unity之OpenXR+XR Interaction Toolkit快速监听手柄任意按键事件
    C/C++中的协程
    scala之偏函数学习
  • 原文地址:https://blog.csdn.net/m0_53008479/article/details/124938729