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

  • 相关阅读:
    2024年第八届人工智能与虚拟现实国际会议(AIVR 2024)即将召开!
    在windows和macos安装multipass
    2024 年 AI 辅助研发趋势
    c语言范例实例
    《定时执行专家》官方版介绍 —— 毫秒级精度、多线程、专业级的定时任务执行软件
    【工作总结】工作累死累活,结果越做越差怎么办?
    CC4分析
    2022牛客暑期多校训练营4(总结+补题)
    git报错The project you were looking for could not be found 解决方式
    【Mybatis源码】GenericTokenParser解析器
  • 原文地址:https://blog.csdn.net/m0_53008479/article/details/124938729