SQL注入进行爆库爆表

2023-11-21 12:30

本文主要是介绍SQL注入进行爆库爆表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SQL注入能做什么

正像小偷从窗户爬进入房间,他不仅能在能在房间内偷东西, 也可以将整个房子洗劫一空。

接下来看看如何利用SQL注入注入进行爆库爆表甚至报数据 !

  • 原理

当知道了目标网站可以进行SQL注入的时候, 如何进一步知道有哪些数据库、哪些表和字段呢?

答案是, 在mysql中有一个元数据库, 

里面存储了所有整个mysql中有什么数据库, 什么表以及每个表中有哪些字段, 就相当于把自己的所有财产都告诉别人了

那么, 只要知道了这个原理, 流程如下:

元数据库 -->  数据库  -->  表  -->  字段  -->  内容

 

1. 元数据库

元数据如何获取呢? 

利用 show databases; 就可以看到元数据库 information_schema了

里面应有尽有, 可以尽情开放的处女地

 

2. 查看所有数据库

有了元数据库, 我们可以看看里面有些什么表:

其中 schemata表中就是存储mysql的所有数据库了, 我们可以查看一下里面的数据

可以看到mysql中有4个数据库

这里的访问形式为: 数据库.表名, shcema_name就是数据库的名称

 

3. 查看表

在元数据表中, TABLES存储数据库中所有的表名:

加入我们通过以上步骤知道了所有数据库的名字, 现在需要进一步挖出指定数据(就比如数据库sys吧)的所有表名, 

我们可以听过查看information_schema中的TABLES描述:

其中 TABLES_SCHEMATABLE_NAME 分别是数据库名和表名

例如, 要查看数据库sys下的所有表:

select TABLE_SCHEMA, TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA='sys';

黄框内即为sys数据库下所有的表名

 

4.  查看字段

现在已经知道了表名, 要进一步挖出字段

所有表的字段信息也在information_schema中:

看看COLUMNS的描述:

COLUMNS_NAME 存储有所有表的所有字段信息

假如有查看数据库sys中的 host_summary 表的字段:

select TABLE_NAME, COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='host_summary';

表的所有字段就出来了!

 

5.  查看数据

所有信息已在掌控之中!  现在只需进行一个简单的查询操作就可以得到数据了:

大功告成!!  成功拿到数据.

 

 

  • 总结 

INFORMATION_SCHEMA   :  元数据库,里面应用尽有

SCHEMATA                          :  里面描述了整个mysql下的所有数据库

TABLE_SCHEMA                 :  数据库名

TABLE_NAME                     :  表名

COLUMNS                           :  存储所有表的所有字段

COLUMN_NAME                 :  字段名

@@version_compile_os      :  操作系统

 

 

这篇关于SQL注入进行爆库爆表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/402373

相关文章

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

MySQL错误代码2058和2059的解决办法

《MySQL错误代码2058和2059的解决办法》:本文主要介绍MySQL错误代码2058和2059的解决办法,2058和2059的错误码核心都是你用的客户端工具和mysql版本的密码插件不匹配,... 目录1. 前置理解2.报错现象3.解决办法(敲重点!!!)1. php前置理解2058和2059的错误