查看: 5749|回复: 4

sqlmap跑出了数据库列表,但是--tables -D提示错误?

[复制链接]
发表于 2016-2-19 12:45:51 | 显示全部楼层 |阅读模式
sqlmap跑出了数据库列表,但是--tables -D提示错误?
求脱库大神讲解一下,么么哒。

[12:42:34] [INFO] the back-end DBMS is Microsoft SQL Server
web server operating system: Windows 2008 R2 or 7
web application technology: ASP.NET, Microsoft IIS 7.5, ASP.NET 2.0.50727
back-end DBMS: Microsoft SQL Server 2008

[12:42:35] [WARNING] the SQL query provided does not return any output
[12:42:35] [WARNING] in case of continuous data retrieval problems you are advis
ed to try a switch '--no-cast' or switch '--hex'

[12:42:36] [WARNING] the SQL query provided does not return any output
[12:42:36] [WARNING] the SQL query provided does not return any output
[12:42:36] [WARNING] the SQL query provided does not return any output
[12:42:36] [CRITICAL] unable to retrieve the tables for any database

在线等!
回复

使用道具 举报

发表于 2016-2-19 13:14:14 | 显示全部楼层
库的问题,没找到。
  你们自己都不看提示的吗
回复 支持 反对

使用道具 举报

发表于 2016-2-19 17:25:14 | 显示全部楼层
据说,kali里面的啊D不错
回复 支持 反对

使用道具 举报

发表于 2016-2-19 19:03:47 | 显示全部楼层
还不会用喂
回复 支持 反对

使用道具 举报

发表于 2016-2-23 15:00:36 | 显示全部楼层
unable to retrieve the tables for any database
在所有数据库中都没找你要的表,你把命令发出来,估计是命令打错了。
回复 支持 反对

使用道具 举报

发表于 2026-5-20 09:05:00 | 显示全部楼层

Re: sqlmap跑出了数据库列表,但是--tables -D提示错误?

从错误信息看,sqlmap虽然能探测到后端是 SQL Server 2008,但执行表枚举的SQL查询没有返回任何输出,常见原因有几个: 1. **当前注入点权限不足** – 可能只有 `sysadmin` 或 `db_owner` 角色才能直接查 `information_schema.tables`,或者当前用户没有对应数据库的 SELECT 权限。可以尝试加上 `--privileges` 或 `--is-dba` 先确认权限级别。 2. **指定数据库名大小写或特殊字符问题** – SQL Server 默认不区分大小写,但如果数据库名包含空格或横杠,需要正确转义。建议在 `-D` 参数后加上引号,比如 `-D "mydb"`。 3. **注入点本身返回数据受限** – 提示“the SQL query provided does not return any output”通常意味着 sqlmap 构造的查询语句虽然执行了,但没有返回有效行(可能是被拦截或查询结果为空)。可以尝试添加 `--no-cast` 或 `--hex`(日志也建议了),有时换用 `--tamper=space2comment` 也能绕过一些限制。 4. **SQL Server 特定问题** – 对于 2008,有时 `information_schema.tables` 在非 master 或
回复 支持 反对

使用道具 举报

发表于 前天 12:10 | 显示全部楼层

Re: sqlmap跑出了数据库列表,但是--tables -D提示错误?

看日志提示说 SQL 查询没有返回输出,针对 MSSQL 这种情况可以试试加 `--hex` 或者 `--no-cast` 参数再跑一次,有时是因为数据编码或类型转换问题导致无法正常显示。另外也检查一下你指定的 `-D` 后面的数据库名是不是完全匹配(包括大小写),还可以尝试先列出表名时排除系统库,比如加上 `--exclude-sysdbs`。要是还不行,可以试试直接指定 `-T 表名` 去枚举列,看看能不能顺利拿到数据。
回复 支持 反对

使用道具 举报

发表于 前天 17:10 | 显示全部楼层

Re: sqlmap跑出了数据库列表,但是--tables -D提示错误?

从你贴的日志来看,`unable to retrieve the tables for any database` 这个错误通常是因为当前注入点对 `SELECT` 查询的返回数据做了限制(比如只返回影响行数、不返回实际结果集,或者用的是 `UNION`/`ERROR` 以外的注入类型以及权限不足)。 几个可以尝试的方向: 1. **加 `--no-cast` 和 `--hex`**(日志里已经提示了) ``` sqlmap -u "你的注入点" --tables -D 数据库名 --no-cast --hex ``` `--no-cast` 可以避免某些 `CAST` 转换导致报错;`--hex` 会把返回结果用十六进制编码绕过字符过滤。 2. **确认数据库名的大小写** SQL Server 可能区分大小写(取决于排序规则)。比如换成 `-D master` 或者 `-D model` 这种系统库试试,如果系统库能读出表,说明是目标库权限不够。 3. **尝试 `--exclude-sysdbs` 或只指定 `--tables`(不指定-D)** 也可以先用 `--current-db` 确认当前库,再用 `-D 当前库名` 试试。 4. **换注入技术** 默认是 `BEUSTQ`,如果用的是布尔盲注或时间盲注,可能对大表遍历很慢。可以强制用 `--technique=E`
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-23 13:18 , Processed in 0.033481 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部