HTTP攻撃 その他@PHP技術
今までの攻撃PHP技術の件以外にも攻撃手法が載っていたので学んだことを書いていきます
- HTTPヘッダインジェクション
ユーザー入力された値を元にHTTPヘッダを出力するロジックが存在する時に注意。
header()関数の引数にGETの内容などを渡していると、ヘッダの出力を想定してもボディ部として扱う(=改行コードをはさんでボディのように見せかける)ことができる。
header('Location:'.$_GET['input']);
など。XSSとかできます。
危ないことは直感的にわかるので、しないことが第1。
どうしても必要な場合は、ホワイトリストを作って置いてマッチングする。
- HRS(HTTP Request smuggling)
HRSについて調べました
リクエストに矛盾が発生するとアプリケーションの仕様によって脆弱性を作ってしまうことがある。
例えば、リクエストを監視しているアプリケーションとWEBサーバーで2つ組み込んでいる場合、
リクエストにContent-lengthフィールドが2つ存在した場合の対応がそれぞれ違うと不正なリクエストでも通してしまう。
→仕様の差によっては脆弱性のあるルートを作ってしまうということ
- CST(Cross Site Tracing)
XSS脆弱性があるサイトでできる攻撃方法。
XSS脆弱性とTRACEメソッドを利用し、ブラウザから送られる最終型のリクエストを取得できるようにする。
どちらかというと、攻撃のサポート的な要素が強い。
これを利用することで、Javascriptから間接的にBasic認証(Authorizationヘッダ)などを参照することができる。
- Connection Flooding
TCPレベルでの話。
TCPコネクションを開始すると上位プロトコルの通信ができるが、何も応答がないとたいうアウトまで待ち続けることを利用した攻撃。
TCPコネクションを張りっぱなしの状態を沢山作ると、サーバーのリソースが食われて遅延や応答不能の原因になる
細い回線でも攻撃できて、ログにも残りづらいのが難点
→同一IPからのコネクションに上限を持たせるといいかも
→ファイアウォールってデフォルトでそんな機能あった気がする。
- F5アタック
気軽にできる攻撃。
キーボードのF5を押すとリロードされる機能を利用したやつ。
この間も2ちゃんが韓国からF5アタックで落とされたらしい