>  기사  >  백엔드 개발  >  PHP 코드 실행 취약점 요약

PHP 코드 실행 취약점 요약

不言
不言원래의
2018-04-24 09:49:595977검색

이 글은 특정 참조 가치가 있는 PHP 코드 실행 취약점에 대한 요약을 소개합니다. 이제 모든 사람과 공유합니다. 도움이 필요한 친구들이 참조할 수 있습니다.

PHP 코드 실행 취약점 요약


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

1 코드 실행 기능

PHP에서 코드를 실행할 수 있는 기능 eval(),ert(),``, system(), exec(), shell_exec(), passthru(), pcntl_exec()
이 함수의 매개변수(일부)를 제어할 수 있는 경우 명령 주입이 있을 수 있습니다. 취약점. Escapeshellarg는 주로 매개변수를 처리하는 데 사용되지만, PHP 라이브러리 함수의 하위 버전에서는 이 함수에 취약점이 있으므로(이유: Windows에서는 백슬래시가 필터링되지 않음) 주의가 필요합니다.

2 파일 포함 코드 주입

파일 포함 함수(include, include_once, require, require_once)에 입력 변수가 포함되면 코드 주입이 발생할 수 있습니다.
조건:allow_url_include=On, 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.