sqlmap跑出了数据库列表,但是--tables -D提示错误?
sqlmap跑出了数据库列表,但是--tables -D提示错误?求脱库大神讲解一下,么么哒。
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
the SQL query provided does not return any output
in case of continuous data retrieval problems you are advis
ed to try a switch '--no-cast' or switch '--hex'
the SQL query provided does not return any output
the SQL query provided does not return any output
the SQL query provided does not return any output
unable to retrieve the tables for any database
在线等! 库的问题,没找到。
你们自己都不看提示的吗 据说,kali里面的啊D不错
还不会用喂:dizzy: unable to retrieve the tables for any database
在所有数据库中都没找你要的表,你把命令发出来,估计是命令打错了。
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 或Re: sqlmap跑出了数据库列表,但是--tables -D提示错误?
看日志提示说 SQL 查询没有返回输出,针对 MSSQL 这种情况可以试试加 `--hex` 或者 `--no-cast` 参数再跑一次,有时是因为数据编码或类型转换问题导致无法正常显示。另外也检查一下你指定的 `-D` 后面的数据库名是不是完全匹配(包括大小写),还可以尝试先列出表名时排除系统库,比如加上 `--exclude-sysdbs`。要是还不行,可以试试直接指定 `-T 表名` 去枚举列,看看能不能顺利拿到数据。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`
页:
[1]