本文仅是对 phpweb前台getshell 的一些补充,因为还是有很多人看完原文后,不知道怎么利用。测试环境:WindowsXP+PHPnow1.6.5+phpwebV2.0.35
在 base/appplus.php 文件中,我们发现一处未过滤的文件上传。但是要利用这处任意文件上传,我们得先绕过第15行的密钥校验。
全局搜索下 md5(strrev($dbUser.$dbPass)) ,看看有没办法将这个值 leak 出来。这里共搜出4处,而 base/post.php 文件中的代码明显和其他不一样,我们看其具体代码。
我们在 base/post.php 文件中,发现当 $act="appcode" 时,程序就会将 md5(strrev($dbUser.$dbPass)) 输出,而 $act 完全可控。
那么利用方式就很明显了。先通过 base/post.php 文件获取 md5(strrev($dbUser.$dbPass)) ,然后再通过 base/appplus.php 文件上传任意文件即可。这里具体 EXP 就不给出来了,会的自然会。