web-dev-qa-db-ja.com

多数の不良文字を処理する

最近、リモートでコードが実行されるバッファオーバーフローの脆弱性を発見しました。ただし、評価されたアプリケーションの構造のために、いわゆる「不良文字」がたくさん登場しました。リストは次のとおりです。

\x00\x0a\x1a\x0d\x22\x2f\x2a\x26\x2e\x3a\x5c\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a

アプリケーションはこれらの文字を小文字に変換するため、基本的に大文字のアルファベットA〜Z全体が削除されました。

問題は、そのような場合でも搾取がまだ可能かどうかです。もしそうなら、それを達成する方法は何ですか?

1

この特定のケースが悪用可能かどうかを判断することは不可能ですが、答えは通常イエスです。特定の不良文字を回避するエクスプロイトコードを生成することは、成熟したソリューションでよく知られている問題です。 Metasploit のエクスプロイトペイロードジェネレーターには エンコーディングステップ が含まれており、これを処理します。回避する文字を指定すると、これらの文字を回避するデコーダーが構築されます。自分で試してみることができます。

これに不慣れな場合は、エクスプロイトを構築できなかったからといって、エクスプロイトが存在しないことを意味するわけではないことに注意してください。優れたブラックハッターは、Metasploitが諦めたとしても、解決策を見つけることができます。