【sql注入-报错注入1】extractvalue()函数 报错注入

news2024/11/17 11:48:28

目录

extractvalue()报错注入

一、语法介绍:

二、报错原因

网络安全小圈子


(***注:注意看版本要求)

extractvalue()报错注入

一、语法介绍:

版本:

MySQL<5.0.x


语法:

EXTRACTVALUE(xml_expression, xpath_expression)

xml_expression是一个XML类型的字段或表达式,xpath_expression是一个XPath表达式,用于指定要提取的节点。


原理:

  1. 首先,函数会对xml_expression进行解析,将其转换为一个XML文档对象。
  2. 然后,函数使用xpath_expression指定的路径来定位要提取的节点。
  3. 最后,函数返回找到的节点的值


使用:

假设一个XML类型的字段xml_data,如下

<book>
  <title>Harry Potter</title>
  <author>J.K. Rowling</author>
  <year>2001</year>
</book>

可以使用extractvalue()函数来提取其中的节点值,如下

SELECT EXTRACTVALUE(xml_data, '/book/title') AS title,
       EXTRACTVALUE(xml_data, '/book/author') AS author,
       EXTRACTVALUE(xml_data, '/book/year') AS yearFROM books;

上述SQL语句将从xml_data字段中提取出"title"、"author"和"year"节点的值,然后将其作为结果集返回



二、报错原因

产生原因:

在extractvalue()函数中,如果xpath_expression参数可以由用户输入控制,攻击者可以构造恶意的XPath表达式,从而执行注入攻击。例如,攻击者可以构造一个恶意的输入,使得xpath_expression参数成为一个恶意的SQL语句。


示例:

SELECT * FROM books WHERE title = EXTRACTVALUE(xml_data, '/book/title')

如果xpath_expression参数可以由用户输入控制,攻击者可以构造一个恶意的输入,例如:

'; DROP TABLE books; --

这样,最终构造出的XPath表达式为:

/book/title'; DROP TABLE books; --

当该恶意输入被传递给extractvalue()函数时,它会将恶意的XPath表达式作为参数执行。由于XPath表达式中包含了一个SQL注释符(--),后续的SQL语句将被忽略,从而导致DROP TABLE books语句被执行,删除了books表。


payload:

and (extractvalue(1,concat('~'(select database()))));

and (extractvalue('anything',concat('/',(select database()))));

and (extractvalue('anything',concat('~',substring((select database()),1,5))));

and extractvalue(1,concat(0x7e,(select database()),0x7e))#



网络安全小圈子

README.md · 书半生/网络安全知识体系-实战中心 - 码云 - 开源中国 (gitee.com)https://gitee.com/shubansheng/Treasure_knowledge/blob/master/README.md

GitHub - BLACKxZONE/Treasure_knowledgehttps://github.com/BLACKxZONE/Treasure_knowledge

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/737411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

地址解析协议 (ARP)

地址解析协议&#xff08;ARP&#xff09;是互联网协议&#xff08;IP&#xff09;套件的关键第 2 层协议&#xff0c;可将 IP 地址转换为媒体访问控制&#xff08;MAC&#xff09;地址&#xff08;IP – MAC&#xff09;&#xff0c;ARP 在实现网络连接方面发挥着不可或缺的作…

赛效:如何一键生成印章

1&#xff1a;在电脑上打开标小智印章生成器&#xff0c;点击输入框&#xff0c;在输入框里输入印章内容。 2&#xff1a;文本内容输入后&#xff0c;点击右侧的“生成按钮”。 3&#xff1a;在生成的印章模板里&#xff0c;挑一个满意的&#xff0c;鼠标放上去就可以看到下载按…

安装Nodejs、NPM、Vue脚手架详细教程

一、安装Nodejs 查看自己电脑是否安装nodejs node --version我这里已经下载过了&#xff0c;没有下载过的会提示该命令不存在 可以到官网下载一下 https://nodejs.org/en/download/ 不要安装在中文路径下 二、安装NPM 如果你安装了nodejs–默认会安装NPM. npm --version…

国内好用的CRM框架推荐和介绍

一、如何选择CRM管理系统的方法 选择适合自己的CRM管理系统是企业客户关系管理的重要决策之一&#xff0c;需要根据自身的需求和实际情况进行选择。下面介绍几个选择比较好的CRM管理系统的方法&#xff1a; 1. 确定功能需求&#xff1a;企业需要根据自身的业务特点和管理需求…

OpenHarmony之小熊派Bearpi-hm_micro_small刷机问题避坑

目录 1.概述2.注意事项3.发现问题4.解决问题 1.概述 最近大家都知道&#xff0c;华为出了一个中国的手机操作系统HarmonyOS,本人很是激动&#xff0c;因为中国终于有了自己的手机操作系统&#xff0c;而且我去了解了下&#xff0c;发现完全不同于Android和IOS操作系统&#xf…

集合面试题--LinkedList数组

目录 单向链表 介绍 时间复杂度分析 双向链表 时间复杂度分析 总结 ArrayList和LinkedList的区别是什么&#xff1f; 单向链表 介绍 时间复杂度分析 双向链表 时间复杂度分析 总结 ArrayList和LinkedList的区别是什么&#xff1f;

Drools用户手册翻译——第三章 构建,部署,应用和运行(一)介绍与构建

这一章内容颇多&#xff0c;就是一个构建&#xff0c;就翻译了好久&#xff0c;虽然说之前用过drools&#xff0c;但是里面kie相关的很多类都比较混乱&#xff0c;翻译完这个用户手册&#xff0c;感觉清晰了许多&#xff0c;因为实在是太多了&#xff0c;如果你也有相同的情况&…

pytorch grid_sample易错点

pytorch grid_sample易错点 易错点是&#xff1a; grid_sample函数中, x对应w, y对应h !! grid_sample函数中, x对应w, y对应h !! grid_sample函数中, x对应w, y对应h !! 函数的作用 output的size和grid的size是一样的&#xff0c;所以output中某一位置(h, w)的值&#xff0c…

华为网络基础

目录 一、封装和解封装和一些通信基本概念 1、带宽&#xff1a; 2、延迟&#xff1a; 3,分层概念 4.单位换算 5.数据的封装 6.介质 二、数据链路和mac地址 1.基本概念 2.帧的内容和区别 2.1. e2帧格式 2.2. ieee802.3帧格式 3.网络层的数据链路层相关的一些概念 …

docker+robot framework+selenium并发web应用UI自动化测试实践

自己在日常测试中&#xff0c;会搭建UI自动化测试框架来进行web应用的回归测试&#xff0c;在这过程中遇到了许多问题&#xff0c;如测试脚本和执行机不分离&#xff0c;串行测试效率低下&#xff0c;环境搭建麻烦等问题。在这个过程中&#xff0c;自己也在网上看一些前辈的搭建…

短视频抖音seo矩阵系统源码:技术开发与实践(三)

一、 技术开发文档说明 1. 系统架构 短视频抖音seo矩阵源码部署功能架构包含&#xff1a;多模式视频剪辑&#xff0c;视频批量处理、文字转语音、视频批量发布、多平台账号管理、 智能在线客服、粉丝画像及数据统计分析、抖音seo排名优化采集等。 2. 抖音seo排名系统模块组成…

高数基础4

目录 求极限的方式&#xff1a; 利用洛必达法则求极限 n阶可导的理解 几个常用的泰勒公式 求极限的方式&#xff1a; 利用洛必达法则求极限 洛必达法则适用于分子分母的极限同为0或者同为无穷的形式。 我们洛必达法则相当于对分子分母同时求导&#xff0c;所以要要求再x0的…

宝塔 安装/使用/备份数据 Jenkins-图文小白教程

一、Jenkins包下载 大家可以从Jenkins官网&#xff08;https://www.jenkins.io/&#xff09;根据自己的需要下载最新的版本。 但Jenkins官网下载较慢&#xff0c;容易造成下载失败。可以去国内的开源镜像网站下载Jenkins最新版本。目前博主使用的是清华大学的开源镜像网站&…

为什么我要自己做一个周易软件

周易是中国数千年流传下来传统文化&#xff0c;在八字、六壬、六爻、奇门遁甲、梅花易数等预测占卜方面应用广泛。很多传统易学工作者或爱好者采用手工排盘的方式&#xff0c;进行相关的排盘。当然现代更多的易学人士采用各自习惯的排盘软件进行排盘&#xff0c;大大节省了排盘…

【广州华锐互动】VR虚拟产品可视化平台将消费者带入不同的场景体验

随着虚拟现实技术的不断发展&#xff0c;VR虚拟产品体验已经成为了各大展会和商场中不可或缺的一部分。VR虚拟产品体验可以为消费者提供多种沉浸式体验&#xff0c;从而吸引更多的消费者关注和购买。 模拟场景体验 VR虚拟产品体验可以通过虚拟现实技术&#xff0c;将消费者带入…

C语言面试经典问题

当准备面试C语言相关职位时&#xff0c;以下是一些常见的C语言面试问题&#xff0c;可以帮助你准备面试。 什么是C语言&#xff1f; C语言的特点是什么&#xff1f; 请解释C语言中的标识符和关键字。 什么是C语言中的数据类型&#xff1f;请列举一些常见的数据类型。 如何…

leetcode-27.移除元素

leetcode-27.移除元素 文章目录 leetcode-27.移除元素一.题目描述二.代码提交(快慢指针)三.运行 一.题目描述 二.代码提交(快慢指针) class Solution {public:int removeElement(vector<int> &nums, int val) {int slow 0;int fast 0;while (fast < nums.size()…

ChatGPT训练流程

图源&#xff1a;State of GPT - Microsoft Build 笔者翻译上图如下&#xff1a; 阶段子阶段目标备注Pre-Training--------语言建模Instruction Finetuning---------让模型能够理解自然语言指令RLHFReward Modeling奖励建模&#xff0c;用来代替人工打分&#xff0c;降低标注…

IP-GUARD如何批量更换审批流程的审批人员?

如何批量更换审批流程的审批人员&#xff1f; 批量选中审批流程&#xff0c;将需要更换的审批人替换为新的即可。 &#xff08;按中shift或者ctrl键再点击审批流程&#xff0c;即可选择多条审批流程。&#xff09; 如何检测客户端机器是否安装了某个指定的补丁&#xff1f; …

RuoyiCloudPlus结合SkyWalking-9.4.0 docker部署流程

一、SkyWalking-9.4.0 docker部署流程 docker-compse.yml sky-oap:image: apache/skywalking-oap-server:9.3.0container_name: ruoyi-sky-oapports:- "11800:11800"- "12800:12800"environment:JAVA_OPTS: -Xms1G -Xmx2G#记录数据的有效期&#xff0c;单…