使用sqlmap提取MySQL表注释无结果,是否操作有误或存在Bug?
问题分析与解决思路
首先得澄清一个关键误解:你用的--comments参数并不是用来读取或显示数据库表注释的,这是对sqlmap参数用途的混淆。
为什么--comments没输出表注释?
sqlmap里的--comments参数作用是在生成的SQL注入Payload中添加注释语法(比如/**/这类),目的是绕过部分WAF或SQL语句过滤规则,完全不是用来枚举表、列的注释信息的。所以你执行这个命令后,只显示连接和DBMS信息是正常的,因为它根本没去读取表注释的逻辑。
正确查看表注释的方法
如果想通过sqlmap获取表的注释信息,应该使用--schema参数,这个参数的作用是枚举目标数据库的完整结构信息,包括表名、列名、数据类型,以及表和列的注释(只要sqlmap支持提取这些信息)。
你可以执行这条命令试试:
python sqlmap.py -d "mysql://root:pwd@localhost:3306/northwind" -D northwind -T fornitori --schema
额外排查点
如果执行--schema后还是看不到表注释,可能有这两个原因:
- sqlmap版本过旧:旧版本的sqlmap可能没有处理
TABLE_COMMENT字段的逻辑,建议更新到最新版sqlmap再试。 - 权限验证:虽然你自己用SELECT能查到注释,但sqlmap使用的连接账号是否真的有
information_schema的访问权限?不过你手动查询没问题,这个可能性很低,但可以再确认下。
内容的提问来源于stack exchange,提问作者ditch
相关产品推荐
相关产品推荐

