セキュリティHTTPヘッダインジェクション(HTTPレスポンス分割攻撃)ブラウザに対して不正なHTTPレスポンスヘッダを送りつけること。任意のURLにリダイレクトさせたり不正なクッキーをセットさせたりする攻撃方法。※ただしPHP側で4.4.2、5.1.2で対応済み。古いPHPで動く場合は注意。そもそもレスポンスヘッダがわからないので下記と思ったら結構ここも詳しく書いてあった。'ページ指定がありません。';}これに対して?page=1をすると/1のとこに飛ぶ仕様。?page=dummy%0d%0aLocation%3a%20http%3a%2f%2fgihyo%2ejp%2fbookアクセスするとリダイレクトされる。この時にヘッダみるとLocation:◉◉が2行になってるのがわかると思う。chromeの場合は下記にアクセスしてフィルタでtype:URLとかにすると見やすい。chrome://net-internals/#eventsあとは%0D%0ASet-Cookie:SID=12345とかでクッキーIDを固定されたり。・PHPのバージョンを上記以上にする。→勝手にチェックしてWarningとして実行されなくなる。・プログラム側で改行コードをチェックする。自分も攻撃者になってしまう。メール宛先にリクエストからの値を利用してる時。例POSTメソッドでリクエスト→お問い合わせフォーム、hiddenでtoにしてる→admin@aaaa.comに送信というプログラムがあったとする。↓htmlでフォームに飛ばすようにしてtoを設定するとか、phpでtoに値を設置してPOSTするとかどちらでもメールがそのまま実行されて、踏み台にされてしまうため危険。最悪の場合、カンマ区切りで沢山POSTされて不正に一斉送信の踏み台にされてしまう。一斉送信仕様ならテキストエリアで1行1アドレスずつ入力してもらい、1行ごと入力されてるメアドが妥当かチェックすること。対策そもそもリクエストからの値を利用しない。しても使うしかないならカンマ区切りのメアド不正挿入、メールヘッダインジェクションに対応しておく必要あり。メールヘッダインジェクションメールヘッダに改行コードを含めた文字列を挿入して送信メールの改ざんをする攻撃方法。メールヘッダ追加やメール本文の改ざんが可能。脆弱性のあるコード内に$_POST['from']とかあって、Fromアドレスを取得している場合。name="from">foo@hoge.com\r\nBcc:bar@hoge.com,buz@hoge.com</textarea>などと改行コードを含んで指定するとBCCのアドレスに送られてしまう。・リクエストからの値を使用しない。しても仕様上使う必要がある場合、カンマ区切りのメアド不正挿入やメールヘッダインジェクションに対応する必要がある。・メアドの形式が妥当か。・メアドドメインが妥当か。・メアドのローカルが有効か。RFCに準拠しないアドレスも存在している(日本の携帯電話など)、RFC準拠でも”で囲まれてればどんな文字でも許容される事を考えると確実に有効かどうかの判定は厳しいというのが現実。メアドの形式として正しいと思われるレベルで問題ないと思われる。改ざんされてしまう危険な攻撃。恐怖グローバルスコープ変数、スーパーグローバル変数、環境変数までも改ざんされる。・コマンド攻撃(これは後述)等が実行可能となる。脆弱性PHP4.4.0より前のWEBアプリケーションだとregister_globalsをよくつかっていた。有効な場合、GETやPOSTなどの値が自動的に変数として展開される。そこでセキュリティ上の観点から、PHP4.2.0からは初期値として無効にされている。このような背景から初期値が無効な場合の対応としてプログラムの最初に変数展開をさせる方法が普及した。これが脆弱性につながってる。環境変数が改ざんされる。・何らかの方法でスーパーグローバル変数展開、GET,POST,Cookie変数の配列展開をしている・parse_str()でクエリ文字列の変数展開の場合は脆弱性がある可能性あり。対策register_globalsを無効にした上で次の対応を行う。・スーパーグローバル変数に対する変数汚染チェック・扱う変数以外は展開しない・foreach,extract()による展開自体しないスーパーグローバル変数に対する変数汚染チェックどこからでも参照可能なので狙われやすい。リクエストのキーがスーパーグローバル変数名かどうかチェック。後編)Tweet広告を非表示にする関連記事2018-03-22【AWS】1章シンプルに始める~サーバーレスシングルページアプリケーション(OREILLY本)まとめ...ちょっと前に掲題の本を買いました。»プロフィールid:hiromode某PR会社勤務。2015年からフロントエンド従事。自分でサービスを作り流行らせるのが目標。主なスキルはHTML,CSS,JavaScript(Vue.js、jQuery),インフラ(AWS、VPS)、CakePHP、Gitなど。備忘録アイデアのつくり方を読んだメモAWSからのメールが迷惑メールになるときWordpress+S3+Cloudfrontで実現する、冗長構成対応の画像配信とメディアアップロードしてS3保存Wordpress等のサイトが500エラーで突然見れなくなった時に疑うメモリ不足とSwap領域について月別アーカイブはてなブログをはじめよう!hiromodeさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。