
Heartbleed 攻撃のサンプル例です。この攻撃を試すために作られたサーバー https://www.cloudflarechallenge.com/ を使用します。
まず、このテーマについて私が読んだ中で最も優れた 2 つの解説は次のとおりです:
このエクスプロイトは、まずサーバー cloudflarechallenge.com にハンドシェイクを送信して、TLS による安全な接続を確立します。次に、関数 hit_hb(s) が典型的なハートビートリクエストを送信します:
hb = h2bin('''
18 03 02 00 03
01 40 00
''')
サーバーの応答を待ち、TLS パケットの 5 バイト(ヘッダー)をアンパックします。(content_type, version, length) = struct.unpack('>BHH', hdr)
その後、ヘッダーから取得した長さに応じて、リクエストの残りを読み取ります。
データはファイル òut.txt に保存されます。
注: この攻撃は暗号化前の ハンドシェイクフェーズで実行可能 ですが、簡略化のため、このエクスプロイトはハンドシェイク後に開始します。
コンピュータに Python 2.7.* がインストールされている必要があります(Python 3 ではテストされていません)。
python2 heartbleed-exploit.py www.cloudflarechallenge.com
すると、次のように表示されます:

次に、ファイル out.txt を確認すると、サーバーのメモリに含まれるデータが 2^14 (40 00)(4 ではなく)であることを確認できます!
このエクスプロイトは何度も実行でき、ファイル内の結果は毎回異なります。
/!\ 警告 エクスプロイトを実行するたびに、ファイルは上書きされます。
##リソースと謝辞