Home >php教程 >php手册 >phpBB < 3.0.10 附件物理路径泄露

phpBB < 3.0.10 附件物理路径泄露

WBOY
WBOYOriginal
2016-06-06 20:07:221902browse

到目前位置仍有很多站点,包括一些比较出名的站点,他们的服务器仍存在某Nginx FastCGI漏洞,前不久研究了下某编辑器遇到了点问题,到官方论坛去提问,顺手就测试了下,发现该服务器也存在这个漏洞,于是就想再顺手测试下去,我需要一个可以上传的点,然后申

到目前位置仍有很多站点,包括一些比较出名的站点,他们的服务器仍存在某Nginx FastCGI漏洞,前不久研究了下某编辑器遇到了点问题,到官方论坛去提问,顺手就测试了下,发现该服务器也存在这个漏洞,于是就想再顺手测试下去,我需要一个可以上传的点,然后申请了论坛邀请码,注册发帖提问,蹲点了一段时间,后来,就忘记了这回事→_→!

前两天编辑器更新了,今天上论坛去回复管理员的帖子,发现可以上传附件了,于是上传了一张图片,得到的地址类似这样:

http://VICTIM/bb/download/file.php?id=1

这样的地址完全无法利用,看了下论坛程序使用的是phpbb这套程序,搜索了一圈也没有爆物理路径的文章,于是去官方下载了最新的源码(phpBB 3.0.10)来分析,地址:http://www.phpbb.com/downloads/,果然得自己动手丰衣足食啊。

第一目标就是锁定file.php这个文件了,看了下附件文件的URL地址构成:

PHP

1

2

//论坛程序路径+上传目录+文件名

$phpbb_root_path.$config['upload_path'].'/'.$attachment['physical_filename']

最终定位到物理地址是程序下的files目录,但是文件名是一个hash值,这样我无法准确的得到文件的URL,于是继续看源码,发现有个缩略图功能:

PHP

1

2

3

4

5

//判断缩略图是否存在,是的话给定一个缩略图文件名,缩略图文件名为大图文件名前加“thumb_”

if($thumbnail)

{

$attachment['physical_filename']='thumb_'.$attachment['physical_filename'];

}

而我在本地测试了上传,发现默认是没有生成缩略图的,就是说默认没有开启缩略图功能:

PHP

1

2

//默认请求缩略图的参数值是false

$thumbnail=request_var('t',false);

于是,我给地址加上一个t参数,值为true,强制读取缩略图,结果显然会报错

PHP

1

2

3

4

5

if(!$attachment)

{

send_status_line(404,'Not Found');

trigger_error('ERROR_NO_ATTACHMENT');

}

请求:

http://VICTIM/bb/download/file.php?id=1&t=true

页面输出:

The selected attachment does not exist anymore.

The file ./../files/thumb_2_9d6d524bd7abcf38b8fa6bba7caa65fb does not exist.

看到结果大喜有木有,于是在论坛上测试,成功获得之前上传的文件的真实URL,并且利用服务器漏洞入侵成功。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Unserialize与AutoloadNext article:PHP引用以及误区