>

代码审计小tips,全局变量防御绕过导致命令执行

- 编辑:www.bifa688.com -

代码审计小tips,全局变量防御绕过导致命令执行

明日无独有偶安装dede,安装到位由一条错误音信 Please set 'request_order' ini value to include C,G and P in php.ini

黄金时代、全局变量

dede中付出了消除的主意,把request_order这几个布局选项从暗许的

模拟register_globals功效的代码,在GPC为off时会调用addslashes(卡塔尔国函数管理变量值,不过假如直白动用$_GET/$_POST/$_CEOKIE那样的变量,那么些就不起功能了,可是dz的源码里平素运用$_GET/$_POST/$_总经理KIE的地点相当少,存在漏洞之处越来越少:(

register_global 能够安装成off或然on ,默感觉off,决定是不是将 EGPCS(Environment,GET,POST,Cookie,Server)变量注册为全局变量。

request_order = "GP"

但是还应该有其余的绕过方法,在register_globals=on下通过提交GLOBALS变量就足以绕过地方的代码了.为了防止这种情状,dz中有如下代码:

如果 register_globals展开的话, 客商端提交的数据中富含GLOBALS变量名, 就能够覆盖服务器上的$GLOBALS变量。

request_order = "CGP"

if (isset($_REQUEST['GLOBALS']) OR isset($_FILES['GLOBALS'])) {
    exit('Request tainting attempted.');
}

透过引起的平安主题素材成为PHP的“自动全局变量漏洞”,请必需要关掉register_globals选项。何况利用 $_GET, $_POST, $_COOKIE 而非 $_REQUEST

关于 request_order 这几个结构选项,是php的5.3.x版本中新追加的。

这么就无助交付GLOBALS变量了么?

漏洞代表:discuz 6.x/7.x php版本在5.3之上,request_order暗中同意值为GP,即暗中同意配置下$_REQUEST只包含$_GET和$_POST而不蕴涵$_高管KIE。借助董事长KIE即可提交GLOBALS变量。

有关她的不安全性能够从以下看来:

$_REQUEST那一个超全局变量的值受php.ini中request_order的熏陶,在风行的php5.3.x类别中,request_order默许值为GP,也等于说默许配置下$_REQUEST只包含$_GET和$_POST,而不包罗$_COOKIE,那么大家就足以经过总老板KIE来交付GLOBALS变量了:卡塔尔(英语:State of Qatar)

$_REQUEST那几个超全局变量的值受php.ini中request_order的影响,在新型的php5.3.x种类中,request_order暗中认可值为GP,也正是说暗中同意配置下$_REQUEST只包含$_GET和$_POST而不包涵$_经理KIE。通过 COOKIE就足以交到GLOBALS变量。进而绕过了多数开源程序中的全局变量防范。因而要将次选用修改为 request_order = "CGP"

本文由必发88手机版发布,转载请注明来源:代码审计小tips,全局变量防御绕过导致命令执行