我自己的一个论坛的一位版主就是这么做的。我还是不敢相信,我也不明白他是怎么做到的。有人能给我解释一下吗?他说他只使用HTTP GET请求
主持人说,服务器(nginx)通常会发送已执行的php文件的输出,但由于文件是777,因此将一些参数添加到URL中,他就可以得到它的未解析版本。
谢谢
发布于 2010-04-15 15:15:23
如果网站上有一个写得很糟糕的下载脚本,那么只需重写url就可以下载任何文件(包括PHP源文件)。这可能就是他所做的,所以你最好检查一下你正在使用的论坛软件(和安装的第三方模块)是否没有任何已知的漏洞。
发布于 2010-04-15 22:05:01
正确配置的服务器将仅执行.php文件,而不会显示其来源。但是,配置错误的服务器可以通过指向原始文件的.phps符号链接来提供PHP源代码。
除此之外,查询参数不能告诉PHP提供源代码,除非有问题的源代码中有一个后门,例如:
if (isset($_REQUEST['gimme_the_codez'])) {
readfile($_SERVER['SCRIPT_FILENAME']);
exit();
}当然,由于文件的模式是777,如果你可以进入它所在的目录,你可以直接获取文件,或者简单地打开后门。
https://stackoverflow.com/questions/2643325
复制相似问题