この記事では、特定の参考値を持つ PHP コード実行の脆弱性の概要を紹介します。必要な友達は参考にしてください。
1 コード実行関数
コードを実行できる PHP の関数: eval()、assert()、``、system()、exec()、shell_exec()、passthru()、pcntl_exec()
これらの関数のパラメータ(一部)が制御可能な場合、コマンドインジェクションが発生する可能性があります脆弱性。通常パラメータの処理にはEscapeshellargを使用しますが、PHPライブラリ関数の下位バージョンにはこの関数に脆弱性(理由:Windowsではバックスラッシュがフィルタリングされない)があるため注意が必要です。
入力変数がファイルインクルード関数 (include、include_once、require、require_once) に含まれる場合、コードインジェクションが発生する可能性があります。
条件:allow_url_include=オン、PHP バージョン>=5.2.0
<?phpinclude($_GET['a']);?>
3 正規表現コードインジェクション
/e モード修飾子がパターン内に存在し、一致する場合、置換内のコードの実行が許可されます。
条件:magic_quotes_gpc=Off,pattern参数中注入/e选项;
demo code:
<?phpecho $regexp = $_GET['reg']; $var = '<php>phpinfo()</php>'; preg_replace("/<php>(.*?)$regexp", '\\1', $var);?>
访问http://127.0.0.1/preg_replace1.php?reg=%3C/php%3E/e
即会执行phpinfo()
条件:pattern参数中带/e
<?phppreg_replace("/testxxx/e",$_GET['h'],"jutst test testxxx!");?>
提交 http://127.0.0.1/demo2.php?h=phpinfo()时, 即 执行phpinfo()。
<?php$dyn_func = $_GET['dyn_func']; $argument = $_GET['argument']; $dyn_func($argument);?>
当http://127.0.0.1/dyn_func.php?dyn_func=system&argument=ipconfig时,执行ipconfig命令
关键函数:create_function
demo code:
<?php$foobar = $_GET['foobar'];$dyn_func = create_function('$foobar', "echo $foobar;");$dyn_func('');?>
当提交http://127.0.0.1/create_function.php?foobar=system%28dir%29时,执行dir命令
array_map()函数
ob_start()函数???
函数处理函数:http://www.php.net/manual/zh/book.funchand.php
相关推荐:
以上がPHPコード実行の脆弱性の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。