我有一个应用程序,代码如下:
<?php
if(isset($_GET['function'])){
$_GET['function']();
}
?>
所以如果我输入这个网址:http://localhost/?function=phpinfo
我将在屏幕上看到phpinfo函数的输出。
我能在url中连接2个函数吗,比如这个例子:
http://localhost/?function=shell_exec('ls')与phpinfo
所以我想看到第一个函数输出。。
如果你可能会问我为什么需要这个,是因为我正在用钢笔测试这种情况下的web应用程序。。
顺便说一下,任何破解这种情况的建议都会有所帮助。
谢谢你的帮助。。
不能连接函数,因为它本身不是代码注入,即:不能影响解析器读取代码的方式。此外,在您提供的示例中,您无法控制传递给函数的任何参数,因此您的建议是不可行的。
您必须找到一种方法,将控制权传递给直接对用户提供的输入($_GET、$_POST等)执行不安全操作的函数,以便利用远程代码执行的这一弱点。根据应用程序的复杂性,您可能能够识别在用户提供的数据上调用system、eval、unserialize或其他危险函数的函数。