カテゴリー: Security
不正リクエストとヘッダインジェクションによるスパムメール中継
スパムメール中継とは、第三者が管理するメールサーバを踏み台にして不正なプログラムを送信させる攻撃です。管理者自身がログなどから気づくこともありますが、セキュリティ対策をしていなかったり、発見が遅れると、被害者であると同時に加害者にもなってしまうこともあります。特にメールサーバがスパムメールの踏台にさ…
コマンドインジェクション
ウェブサーバーのOSで使われるコマンドを注入する攻撃のことを言います。この攻撃は、system、passthru、exec、popen、shell_execなどの関数を利用されることで発生します。OSコマンドインジェクションとも呼ばれていますが、この攻撃はOSのコマンドだけでなく、外部コマンドを実行…
ファイルアップロードの機能を利用した攻撃
ファイルアップロードを使った攻撃は、悪意あるコードを注入した不正ファイルをアップロードし、そのファイルにアクセスすることで成立します。この攻撃は、XSSを使って第三者に接続させる方法や攻撃する側が自らサーバにコードを注入して実行させる方法が知られています。 攻撃される場所 ファイルのアップロードが出…
パスディスクロージャとエラーレポート設定
パスディスクロージャはPHPスクリプトのフルパスがエラーレポートによって出力されてしまう性質を利用した攻撃のことを言います。意図的にエラーを発生させて、取得した情報を元に他の攻撃を受けることがあります。ただし、エラーレポートは本来、デバッグや開発の際に必要となるものです。 wordpressのセキュ…
セッションハイジャック
セッションハイジャックは不正に取得したセッションIDを使って正規ユーザのセッションを乗っ取る攻撃を言います。乗っ取られると正規ユーザができる操作の全てが実行でき、大きな被害を生む可能性があります。 セッション固定攻撃によるセッションIDの漏洩 セッション固定攻撃は、強制的に任意の固定したセッションI…
変数汚染のリスク
変数汚染はグローバル変数やスーパーグローバル変数の値が改ざんされることを指します。外部からの受け取ったリクエスト値をそのまま変数展開させてしまう場合に発生します。セッション変数を改ざんされてしまった場合、コマンドを実行されたり、権限を与えてしまうといったリスクが高まります。 変数汚染の原因 古いバー…
インクルードの脆弱性
インクルード攻撃では、リモートファイルインクルードと呼ばれる外部サーバのファイルを読み込ませる方法とローカルファイルインクルードと呼ばれるサーバ内部のファイルを読み込ませる方法が知られています。この手の攻撃を受けた場合、PHPのあらゆるコードが実行されてしまいます。 インクルードで攻撃される場所 リ…
ディレクトリトラバーサル
ディレクトリトラバーサルは、「../」を使ってディレクトリの上の階層に移動できるため、ウェブサーバのトップページの外側にあるファイルにも接続することが可能です。そのため、UNIX系のオペレーティングシステムではpasswd fileなどの内容が漏洩します。 攻撃される場所 ディレクトリトラバーサルは…
Nullバイト攻撃対策
PHPは、ファイルシステムに関わる処理においてC言語の関数を用いています。そのため、Nullバイト処理で挙動がおかしくなることがあります。 攻撃される場所 リクエストを$_POSTや$_GETなどで受け取ることで発生します。例えば不適切に処理された外部入力を受け付けるフォームなどが該当します。Nul…
evalを使った場合の危険性
preg_replaceのe修飾子はPHP7以降で使えなくなっていますが、それより前のバージョンでは使えます。このe修飾子は、preg_replaceにおいて置換後のパターン文字列をPHPコードとして評価するという意味です。このようなe修飾子を使った関数やeval関数などは、受けとった文字列をPHP…