• 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之后,我们应该通过什么样的方式,去获取后端数据库的表名、列名,进一步获取相关的数据,用暴力破解的方式就是其中比较有趣的方式

  • 相关阅读:
    分类预测 | MATLAB实现PCA-GRU(主成分门控循环单元)分类预测
    Promise从入门到精通 (第二章 Promise的理解和使用)
    2024年高考:计算机相关专业前景分析与选择建议
    【FPGA】verilog基础语法与应用:位操作 / 模块调用——流水灯(跑马灯)
    FastJson基本使用
    clip:learning transferable visual models from natural language supervision
    MySQL执行计划分析
    云LIS系统源码 B/S架构,SaaS模式,可扩展性强
    给奶牛做直播之三
    mysql使用orderby 不起作用
  • 原文地址:https://blog.csdn.net/m0_53008479/article/details/124938729