热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

你真的会SQL注入攻击吗?(上)

扫描二维码关注公众号,不便发在知乎的文章会在公众号持续更新专栏被逗逼举报,禁了一周。所以我无奈之下搞了一个公众号,见题图正文:作者在网络上看过无数的关于手工注入的讲解却没有一个真正

扫描二维码关注公众号,不便发在知乎的文章会在公众号持续更新

专栏被逗逼举报,禁了一周。所以我无奈之下搞了一个公众号,见题图

正文:

作者在网络上看过无数的关于手工注入的讲解

却没有一个真正完整把原理说清楚的文章,直接就是附上爆库、爆表的语句,甚至也没有详细说过任何一个Mysql函数的概念。

sqlmap语句滚瓜烂熟。这也间接的导致了现在许多人只会学不会造,永远都在求绕过姿势

为了让每一个学习注入的人完整地了解SQL注入,此处以Mysql Union Query(联合查询)注入类型来讲解。了解Mysql注入前我们还必须先了解“information_schema”这个数据库。为了更直观地展示,以图形化界面PHPMyadmin来说明这个数据库。

information_schema数据数据库是MySQL自带的数据库,简单来说它存储着整个Mysql数据库的数据信息,其中就包含Mysql里面的所有库、表、字段的关系结构。

在PHPMysql中打开information_schema数据库中的SCHEMATA表。看最关键第二个字段“SCHEMA_NAME”,你是否会觉得很熟悉?

《你真的会SQL注入攻击吗?(上)》
《你真的会SQL注入攻击吗?(上)》

没错,它就是显示Mysql数据库中所有的库名。不信你可以在Mysql命令行使用Show databases;查看你数据库中的所有库子。如下图:

《你真的会SQL注入攻击吗?(上)》
《你真的会SQL注入攻击吗?(上)》

那么说来我们要获取一个Mysql数据库中的所有库名则可以使用SQL语句“select SCHEMA_NAME from information_schema. SCHEMATA”。(注意这里的:information_schema. SCHEMATA是什么意思呢?点号的前面是数据库名,点号后面则是表名,例如a.bc表示a数据库下的bc表)。

《你真的会SQL注入攻击吗?(上)》
《你真的会SQL注入攻击吗?(上)》

OK,那么我们来想想如何获取一个数据库中的所有表呢?没错,也是在information_schema数据库中。只不过我们不是看“SCHEMA_NAME”这个表了,而是看“TABLES”表了,这个表是存储着所有的每个数据库每个表的结构。如下图(不完整的截图):

《你真的会SQL注入攻击吗?(上)》
《你真的会SQL注入攻击吗?(上)》

注意看,第二个字段是数据库的名字,第三个字段“TABLE_NAME”则是表名,上图是说Mysql数据库下 有“time_zone_name 、time_zone_transition 、time_zone_transition_type 、user、”等几个表。那么获取一个数据库中的所有表的SQL语句则为“select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA =你要获取表的数据库名”,例如我要获取“Mysql”这个数据中的所有表,如下图:

《你真的会SQL注入攻击吗?(上)》
《你真的会SQL注入攻击吗?(上)》

下一步我们要了解如何获取字段了,字段的信息存储在information_schema数据的COLUMNS表中。如下图中(截图不完整),第二个字段“TABLE_SCHEMA”是数据库名称,第三个字段“TABLE_NAME”是当前数据库中的表名。第四个字段“COLUMN_NAME”是当前表下的字段。

《你真的会SQL注入攻击吗?(上)》
《你真的会SQL注入攻击吗?(上)》

以上图第一行举例说明:mysql数据库下的user表中的Reload_priv字段。这样我们要获取一个表中的所有字段则可以使用这样的SQL语句“select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME=获取字段的表”,如下图获取Mysql数据库下的user表的所有字段名称。

《你真的会SQL注入攻击吗?(上)》
《你真的会SQL注入攻击吗?(上)》

很完美,我们已经学会了使用information_schema查询一个数据库中的所有库名、表名、字段等信息,这对我们学习SQL注入非常有用处,是不是觉得很绕,对,刚开始学习这些就是非常地绕,大家可以动动手练习一下就会熟能生巧了。

练习完之后我们将进入下章节的注入学习。

相关链接:你真的会SQL注入攻击吗?(下) – 黑客生活 – 知乎专栏


推荐阅读
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 本文提供了关于数据库设计的建议和注意事项,包括字段类型选择、命名规则、日期的加入、索引的使用、主键的选择、NULL处理、网络带宽消耗的减少、事务粒度的控制等方面的建议。同时还介绍了使用Window Functions进行数据处理的方法。通过遵循这些建议,可以提高数据库的性能和可维护性。 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
author-avatar
花儿在绽放2502857073
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有