{${phpinfo()}}叫什么?(与远程命令执行相关)
我希望有人能为我回答这个问题,因为我对它相当好奇已经有一段时间了,但似乎还没有得到答案。 然而,我相信这里会有人能够做到,因为这里有一些非常聪明的人 现在,我来回答这个问题。 我将以远程命令执行漏洞为例{${phpinfo()}}叫什么?(与远程命令执行相关),php,security,code-injection,Php,Security,Code Injection,我希望有人能为我回答这个问题,因为我对它相当好奇已经有一段时间了,但似乎还没有得到答案。 然而,我相信这里会有人能够做到,因为这里有一些非常聪明的人 现在,我来回答这个问题。 我将以远程命令执行漏洞为例 <?php echo preg_replace('/(.*)/e', 'strtoupper("\\1")', $argv[1]); ?> 要利用此漏洞,攻击者只需输入{${phpinfo()}}。 我的问题如下: 大括号{}是用来做什么的?为什么看起来像一个大括号 变量 它有
<?php echo preg_replace('/(.*)/e', 'strtoupper("\\1")', $argv[1]); ?>
要利用此漏洞,攻击者只需输入{${phpinfo()}}
。
我的问题如下:
{}
是用来做什么的?为什么看起来像一个大括号
变量{}
可以工作,就像“{$foo}”
,但是phpinfo()
是一个函数,当您需要调用它时,您需要两个{}
,您的示例“{${phpinfo()}}”
,它们将调用phpinfo()
函数
这就是为什么e
修饰符不受欢迎的原因,例如,对其进行成像
{${eval($\u GET['php\u code'])}
,这使攻击者能够执行任意php代码,从而使其几乎完全访问您的服务器
要防止出现这种情况,请改用
preg\u replace\u callback()
。哦,到目前为止,大括号还不在列表中: