web-dev-qa-db-ja.com

PHP GETおよびechoを使用したコードインジェクション

このコードの一部をWebアプリケーションで見つけました(簡略化):

<?php $password="very-secret-password"; $param = $_GET["param"]; ?>
<html> ...
Param: <?php echo $param; ?>
... </html>

これはXSSの呼び出しのようなものであることは知っていますが、攻撃者が自分のPHPここのコードを実行できるかどうかを確認します。これにより、パスワードを表示するようなものを意味します-page.php?param=; ?><?php echo $password; ?>、しかし特にこれはうまくいきませんでした。

グーグルとOWASPのチートシートでは、この特定の問題に関する情報は提供されていません。

それで、攻撃者は自分の[〜#〜] php [〜#〜]コードをここで実行できますか、それとも不可能ですか?はいの場合、どのように? (PHP v5.6)

3
Vilican

いいえ、CGIパラメータをエコーするだけでサーバーサイドコードを挿入することはできません。しかし、あなたが言うように、それは反映されたXSS攻撃を可能にします。

一方、コードに他の脆弱性がある可能性もありますnot質問に含めてください。

15
symcbean

パラメータをエコーするだけの場合、攻撃者はPHPコードを挿入できません。しかし、XSS攻撃を可能にします。

ただし、eval($_GET["param"])、またはGETまたはPOSTパラメータのいずれかを使用する他のコードを評価すると、PHPコードを挿入することができます。

2
Iter Ator