为什么要修剪 sqlmap 的输出?

信息安全 哈希 sql注入 mysql sqlmap
2021-08-28 07:53:21

我决定学习sqlmap,但是 Sqlmap 修剪我的一些输出(哈希)存在问题。哈希将是 32 个字符长,但我只得到 25 个字符和警告:

[WARNING] possible server trimmed output detected (due to its length and/or content): HASH'

它只是修剪此列,而不是我也选择转储的其他列,尽管我没有看到它们超过 25 个字符。我试过开关:

--hex 

但这并没有给我任何运气。

花了几个小时寻找任何解决方案。有没有我可以尝试的其他开关或其他解决方案?

1个回答

根据[Github 1] 上的 sqlmap 源代码,当从 SQL 服务器返回的数据大小小于请求的数据大小时,会出现此警告:

trimmed = _("%s(?P<result>.*?)<" % (kb.chars.start))

            if trimmed:
                warnMsg = "possible server trimmed output detected "
                warnMsg += "(probably due to its length and/or content): "

如果 SQL 程序员决定能够查询数据库元素,但不能返回整个项目,则可能会发生这种情况。TEXTSIZE命令是在 SQL Server 中执行此操作的一种方法(还有其他几种方法)。

主要原因是在不传输大块数据的情况下检查是否有任何数据。散列值不大,但有些系统会截断密码散列值并使用存储的部分散列值。截断散列值不是一个好的做法,请参阅截断加密散列是否使其无法破解?.

请注意,更改为--hex只会影响输出显示的格式,而不影响显示的字符或字节的整体大小(二进制的 01001001,十六进制的 = 0x49,十进制的 =73,ASCII 中的字母“I”,但是一个字节不管)。