为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 中 eval() 函数内的嵌套变量引用

PHP 中 eval() 函数内的嵌套变量引用

PHP
凤凰求蛊 2021-07-05 13:53:14
我正在尝试将引用另一个变量的变量传递给eval()PHP 中的函数。bin2hex 和大多数其他 PHP 函数无法使用,因此我必须依赖(我认为的)PHP 特性,它将十六进制自动解析为 ascii 字符串。当我尝试运行它时:<?php$t = "\x70\x68\x70\x69\x6e\x66\x6f\x28\x29"eval($t . "();");?>在phpinfo()被调用并在网页上显示但是当$t像这样从超全局变量引用变量时:<?php// HTTP request:// http://myserver.com/debug.php?t=$_GET['s']&s=\x70\x68\x70\x69\x6e\x66\x6f\x28\x29// Info:// $_GET['t'] = $_GET['s'];// $_GET['s'] = \x70\x68\x70\x69\x6e\x66\x6f\x28\x29eval($_GET['t'] . "();");?>十六进制字符串不会被解析(而是按原样打印)并且不会被执行。我的目标是通过 HTTP 查询参数 ($_GET)phpinfo()在eval()函数内部执行,因为我通过\x70\x68\x70\x69\x6e\x66\x6f\x28\x29了phpinfo(). 但在我的情况下,十六进制没有被解析,因此没有被执行。我做错了吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 221 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信