web-dev-qa-db-ja.com

sqlmapからの出力がトリミングされるのはなぜですか?

sqlmap を学ぶことにしましたが、Sqlmapが出力の一部をトリミングする際に問題があります。ハッシュの長さは約32文字ですが、25と警告しか表示されません。

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

これはこの列をトリミングするだけであり、私がダンプすることを選択した他の列ではありませんが、25文字より長くなるのを見たことはありません。私はスイッチを試しました:

--hex 

しかし、それは私に運を与えていません。

これに対する解決策を見つけることに何時間も費やしてきました。私が試すことができる他のスイッチ、またはおそらく別の解決策はありますか?

6
user3316995

[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でこれを行う1つの方法です(他にもいくつかあります)。

主な理由は、大きなデータブロックを転送せずにデータがあるかどうかを確認することです。ハッシュ値は大きくありませんが、一部のシステムはパスワードハッシュ値を切り捨て、格納されている部分ハッシュ値を使用します。ハッシュ値を切り捨てることは良い習慣ではありません。 暗号化ハッシュを切り捨てると解読できなくなりますか? を参照してください。

--hexに変更すると、出力ディスプレイのフォーマットにのみ影響し、ディスプレイの文字またはバイト単位の全体サイズには影響しません(バイナリでは01001001、16進数では0x49、10進数では= 73、=文字 "I "ASCIIですが、1バイトです)。

1
Stone True