Webアプリケーションには主に14の脆弱性が含まれるらしい。
・XSS(Cross Site Scripting)
不正なスクリプトを埋め込ませることでクッキー情報などを他サイトに送りつけ不正取得などを可能にする。
参考サイト:マルチバイトの落とし穴
・Script Insertion
リクエスト内容がそのまま表示されてしまう脆弱性を悪用し、Javascriptをはじめとするスクリプトを埋め込むことで掲示板などを訪れたユーザーのCookie情報を取得したり、フィッシングを仕掛けたりできる。
・SQL Injection
正規のSQLに不正なコードを埋め込むことで、異なる条件による問い合わせや、まったく予期されない問い合わせを可能にする攻撃手法。
・CSRF(Cross Site Request Forgeries)
・ヌルバイト攻撃
ヌルバイトは文字列の終了を示すC言語の仕様を悪用した攻撃手法。バイナリセーフでない場合には、ヌルバイト以降に不正なコードを仕込むことでコード内に含まれるチェック機構をバイパスできる。
・Directory Traversal
予期しないディレクトリへのアクセスを可能にする攻撃手法。チェックさえ正しくされていればこのようなことは起こらないが、上位ディレクトリへのアクセスを許してしまうことで、Webアプリケーション実行ユーザーが許可されているファイルを取得できてしまう。
・HTTPレスポンス分割攻撃
・インクルード攻撃
PHPが外部URIをインクルードできてしまうため、他サイトの悪意あるコードを実行できてしまう。includeファイルにユーザーが入力可能な文字列を含めてしまうということ自体がそもそも脆弱性である。
・eval利用攻撃
・外部コマンド実行攻撃
・ファイルアップロード攻撃
・セッションハイジャック
セッションキーを無理やり指定してプログラムを実行させ、実行してしまったユーザーのセッション情報を後ですべて取得する方法。
・スパムメール踏み台攻撃
メール送信フォームが任意のユーザーに送れる場合に利用可能な攻撃方法。メール送信フォーム自体がスパムメール送信装置となってしまう。
XSSとSQL Injectionはかなり有名だが、ほかにも多くの脆弱性が考えられるとは。
PHPサイバーテロの技法にはこれらがサンプルコードとともに掲載されているので非常に分かりやすい。