サイズ: 1806
コメント: 一向に公開が進まないのでとりあえずinsideへ
|
サイズ: 2035
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 39: | 行 39: |
*標準入出力 or 引数でしかデータが渡せないため、ヌル文字('\0')をデータに含めることが出来ない。 * Ruby Binding( https://gitlab.mma.club.uec.ac.jp/nomeaning/hashpump-rb )では平気。 |
HashPump
様々なハッシュアルゴリズムについて、Length Extension Attackを行うためのツールである。 CRC32, MD5, SHA1, SHA256, SHA512に対応している。
使い方
hash(UNKNOWN ~ 初期既知文字列) = 既知ハッシュ
となることが分かっているとする。付与したい文字列をstrとして、
hash(UNKNOWN ~ 初期既知文字列 ~ 何らかの文字列 ~ 追加文字列)
を求めるには、次のようなコマンドを実行する。
$ hashpump -s (既知ハッシュ) -d (既知初期文字列) -k (UNKNOWNの長さ) -a (追加文字列) 出力1行目: hash(UNKNOWN ~ 初期既知文字列 ~ 何らかの文字列 ~ 追加文字列) 出力2行目: 初期既知文字列 ~ 何らかの文字列 ~ 追加文字列
md5に対して攻撃を行う例。
$ hashpump -s 13c786aa2625fe2597aaeef121ff3a68 -d a -k 7 -a aa 8a483d9649f8cad04d0241ab18ae8f4e a\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00aa
実際にはUNKNOWNの長さは分からないことが多いので、様々な数字を試して特定することになる。
インストール方法
$ git clone https://github.com/bwall/HashPump $ cd HashPump $ make $ sudo make install
make installしなくとも、生成されたHashPumpコマンドを叩けば利用することが出来る。
その他
- 既知データの長さが0の場合は入力欄が与えられるが、そこにEOFを入れれば良い。
- 標準入出力 or 引数でしかデータが渡せないため、ヌル文字('\0')をデータに含めることが出来ない。
Ruby Binding( https://gitlab.mma.club.uec.ac.jp/nomeaning/hashpump-rb )では平気。