何を改ざんするツールかと申しますと、フォームのGETあるいはPOSTで送信されるデータを改ざんして、サーバにリクエストするというツールです。
逆にサーバからのレスポンスを改ざんすることも可能です。
まず注意ですが、この行為を他人のサーバにやったら、犯罪です。
絶対にしないようにしましょう。
どういうときに改ざんツールを使うかというと、良からぬことをする輩に対して対策するためです。
例えば、hiddenで渡しているデータを改ざんするだけで、お金を払ってもいないのに、払ったことになってしまうということでは大変です。
不正な値を送信された場合に、どのように対処するかは、特に商用サイトをしている場合に重要です。
では、どういう改ざんをされてしまうことがあるのでしょうか?
ひとつは、SQLインジェクションです。
SQLはデータベースにつなぐための言語です。
インジェクションとは挿入という意味です。
フォームにSQLコードを書くことにより、SQLが実行され、不正にデータを入手することが可能となる場合があります。
開発者としては、SQLコードを入力されても実行されないように、対策をすることが必要です。
また、クロスサイトスクリプティングというのもあります。
これは、ソフトウェアのセキュリティホールの一つで、例えば、フォームにJavaScriptを入力するとそれが実行されてしまうなどが挙げられます。
こういうことをされないために、あえてそのような状況を作り出し、実際にコードが実行されないか確認するために、Achillesなどのツールを使用します。
これは、クライアントPCとサーバの間にいて、クライアントからのリクエストを改ざんしてサーバへ送信します。
Achillesについて詳しく説明しようと思ったらすでにネット上に詳しく説明しているサイトを発見してしまいましたので、そちらを参考になさったほうが早いかもしれません。
ツールのダウンロードもそちらからできます。
@IT:Webアプリケーションに潜むセキュリティホール(5)
http://www.atmarkit.co.jp/fsecurity/rensai/webhole05/webhole01.html
(ページの真ん中あたりから)
何も書かないのもあれなので、簡単な説明というか自分のための覚え書きをします。
Achillesというのは、所謂「プロキシサーバ」です。
また、サーバに接続するのは普通、ポート番号80を使用しますが、この場合、それ以外を使用します。
デフォルトでは、5000になっているので、それにあわせてブラウザの設定を変更します。
こうすると、ポート5000を通ってAchilles(プロキシサーバ)を通過してサーバにリクエストをかけることが可能になります。
使い方は以下の通り。
1.Achillesをダウンロードする。
ダウンロードは以下から。
http://packetstormsecurity.nl/web/achilles-0-27.zip
2.achilles-0-27.zipを解凍。起動はAchilles.exeをダブルクリックして実行するだけ。
3・設定は以下の通りです。
(1)Proxy Setting
ポート番号を5000(デフォルトの値)にします。
その他は特に指定しなくてもよいです。
(2)Intercept Modes
| Intercept mode ON | 実際にリクエスト、レスポンスを遮断するかどうか |
| Intercept Client Data | クライアント側からのデータ送信(リクエスト)を遮断する |
| Intercept Server Data(text) | サーバ側からのデータ送信(レスポンス)を遮断する |
| Ignore .jpg/.gif | 画像ファイルを無視する。遮断しないようにする。 |
とりあえず、Intercept mode ONにはチェックを入れましょう。
クライアントからのリクエストを改ざんするだけでしたら、Intercept Client DataとIgnore .jpg/.gifにもチェックします。
4.「Start Proxy」ボタン(三角の再生ボタンみたいなやつ)をクリックするとプロキシとして動作します。
止める場合はその横の「Stopt Proxy」ボタン(四角の停止ボタンみたいなやつ)をクリックします。
(起動しているかどうかは下にRunning、Stopが出るのでわかる)
5.ブラウザを設定する。
IEの場合について説明します。
ツール>インターネットオプション>接続>LANの設定>プロキシを設定するにチェック
自分のPCのIPアドレスを調べます。
調べ方は、コマンドプロントを開いて、「ipconfig」と入力します。
すると、自分のPCのIPアドレスが表示されますので、それを、アドレスに記述します。
ポートは5000と入力します。
詳細設定で、例外にローカルのIPアドレスが記述されていないか確認してください。
私はそこにローカルのIPアドレスを記述していて、なぜプロキシサーバに接続しないんだろう?と頭をかしげたことがありました。
ばかですね・・・
あとひとつ。
当たり前ですが、Achillesを起動しないと、サーバにも接続されませんから(リクエストが送信されないため)気をつけてください。
6.実際に使用してみる。
ブラウザをリロードすると、その情報がプロキシサーバにリクエストされます。
GETやPOSTの情報を書き換えて、「send」をクリックすると、サーバに改ざんされた情報が送信されます。
このように一旦リクエストあるいはレスポンスがプロキシさーばで止められ、「send」をすると、データが送信されます。
また、GETやPOST以外にもCookieとかも送信の対象になります。
何度も「send」しなければならなかったりします。
このツールの面白いところは、どのようにクライアントとサーバが通信しているかわかるところですね。