phpBB < 3.0.10 附件物理路径泄露
到目前位置仍有很多站点,包括一些比较出名的站点,他们的服务器仍存在某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,并且利用服务器漏洞入侵成功。
原文地址:phpBB
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
上一篇: 这么写一个包含文件,为啥中文部分出现乱码
下一篇: MySQL常用命令集合_MySQL