April 2020
Intermediate to advanced
352 pages
4h 11m
Japanese
ファジングは、実行ファイル、プロトコル、システムなどに内在された潜在的な脆弱性を特定するために用いられる手法である。ファジングは、ユーザ入力の検証が貧弱で、バッファオーバーフローなどの脆弱性を内包しているアプリケーションを特定する際に特に有用である。bashは、そもそもの目的がシェルからのコマンド実行であり、その際にさまざまな引数を設定可能という点で理想的なファジングのツールである。
本章ではfuzzer.shというツールを作成する。このツールでは実行ファイルのコマンドライン引数をファジングする。言い換えると、指定された実行ファイルの、ある引数の値を1文字ずつ増加させながら何度も実行する。次に要件を示す。
?文字により指定されること。例えば、fuzzer.shを用いてfuzzme.exeの2番目の引数をファジングする際は、次のようにして実行する。
./fuzzer.sh fuzzme.exe arg1 ?
ファジングしたい引数は、?文字で指定される。fuzzer.shはfuzzme.exeを何度も実行し、毎回2番目の引数に文字を追加していく。これを手作業で行う場合は、次のようになるだろう。
$fuzzme.exe arg1 a$fuzzme.exe arg1 aa$fuzzme.exe ...
Read now
Unlock full access