我正在寻找一种仅在 PHP 中使用 eval 来实现 __toString 方法的方法。最终目标是能够读取文件。请注意,这是 CTF 挑战的一部分,而不是真实世界的应用程序。
我得到了以下实现
function __toString(){
eval($this->var);
}
由于 $var 在我的控制之下,我可以将 if 设置为任何我想要的。到目前为止,我已经尝试了以下但没有成功:
$var = "return file_get_contents('file.txt');"
有什么提示吗?
更新:相关代码如下:
class MyClass{
private $var;
function __toString(){
if (isset($this->var) eval($this->var);
}
}