phpBB < 3.0.10 附件物理路径泄露

phpBB < 3.0.10 附件物理路径泄露

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

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

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

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

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

PHP

//论坛程序路径+上传目录+文件名$phpbb_root_path . $config[‘upload_path’] . ‘/’ . $attachment[‘physical_filename’]

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

PHP

//判断缩略图参数是否存在,是的话给定一个缩略图文件名,缩略图文件名为大图文件名前加“thumb_”if ($thumbnail){ $attachment[‘physical_filename’] = ‘thumb_’ . $attachment[‘physical_filename’];}

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

PHP

//默认请求缩略图的参数值是false$thumbnail = request_var(‘t’, false);

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

PHP

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,并且利用服务器漏洞入侵成功。

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.