专栏首页FreeBufPHP任意文件上传漏洞(CVE-2015-2348)

PHP任意文件上传漏洞(CVE-2015-2348)

安全研究人员今天发布了一个中危漏洞——PHP任意文件上传漏洞(CVE-2015-2348)。

在上传文件的时候只判断文件名是合法的文件名就断定这个文件不是恶意文件,这确实会导致其他安全问题。并且在这种情况下,在你自己的文件中检查漏洞很不现实,因为这个漏洞可以绕过你对文件名后缀、文件类型(Content-Type)、Mime type、文件大小等的检查,所以仅仅依靠这些检查是救不了你的。

漏洞细节

这个漏洞存在于php中一个非常常用的函数中:move_uploaded_files,开发者总是用这个函数来移动上传的文件,这个函数会检查被上传的文件是否是一个合法的文件(是否是通过 HTTP 的 post 机制上传的),如果是合法的文件,则将它一定到指定目录中。

例子:

move_uploaded_file ( string $filename , string $destination )

这里的问题是,可以在文件名中插入空字符(之前多次修复过这个漏洞,比如CVE-2006-7243),利用插入空字符的方式,攻击者可以上传任意文件,引起远程代码执行漏洞等。

我这里用DVWA来演示这个例子,DVWA级别最高的一题中因为种种原因不是很容易通过,意在告诉开发者如何去开发更安全的文件上传组件。让我们来看看这个例子:

代码片段:

$uploaded_name = $_FILES['uploaded']['name'];

$uploaded_ext = substr($uploaded_name, strrpos($uploaded_name, '.') + 1); $uploaded_size = $_FILES['uploaded']['size'];

if (($uploaded_ext == "jpg" || $uploaded_ext == "JPG" || $uploaded_ext == "jpeg" || $uploaded_ext == "JPEG") && ($uploaded_size < 100000)){ if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path)) {

$html .= '';

$html .= 'Your image was not uploaded.';

$html .= ''; }

else {

$html .= $target_path . ' succesfully uploaded!';

.

.

这段代码有好多个漏洞,比如XSCH, XSS等,但是没有RCE这种严重的漏洞,因为从PHP 5.3.1开始,空字符的问题已经被修复了。这里的问题是,DVWA将用户上传的name参数传递给了move_upload_file()函数,那么 php 执行的操作可能就是这样子的:

move_uploaded_file($_FILES['name']['tmp_name'],"/file.php\x00.jpg");

这本应该创建一个名为file.php\x00.jpg的文件,但实际上创建的文件是file.php。

这样,就绕过了代码中对后缀名的校验,并且事实证明GD库中又很多其他函数也存在这个问题(比如getimagesize(), imagecreatefromjpeg()...等),可以看这个例子。

如果你机器的php版本在 5.4.39, 5.5.x - 5.5.23, 或者 5.6.x - 5.6.7,可以通过检查文件名中是否有\x00字符来解决本文中所述的问题。

安全建议

如果你的机器上存在这个漏洞,建议使用随机字符串重命名文件名,而不是使用用户上传上来的name参数的值。

参考来源www.paulosyibelo.com,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

本文分享自微信公众号 - FreeBuf(freebuf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-04-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 追踪掠食者:地下灰产如何撸死创业公司?

    互联网大公司周围,往往围着一群灰产从业者,他们是看不见的敌人,常常躲在暗处,伺机而动。《一代宗师》里说,“风尘之中必有性情中人”,羊毛党可恶之中实有可取之处,其...

    FB客服
  • 微软智能助手Cortana易被利用,可解锁计算机

    Cortana是微软在Windows 10中内置的人工智能助手,但最近其被发现可以帮助攻击者解锁你的电脑。

    FB客服
  • 内网渗透测试:隐藏通讯隧道技术

    上一节中,我们讲解了网络层的隧道技术(IPv6 隧道、ICMP 隧道)和传输层的隧道技术(TCP 隧道、UDP 隧道、常规端口转发)。现如今,TCP、UDP 通...

    FB客服
  • DVWA笔记(五)----File Upload

    这两天自己总结的web基础感觉还是蛮有用的,碰到正经的CTF题目虽然可能依旧磕绊,但至少知道出题人的想法了,除了脑洞题。。有些脑洞我是真的服...废话不多讲,直...

    用户5878089
  • DVWA靶机之文件上传漏洞通关笔记

    文件上传漏洞通常是由于对上传文件的类型、内容没有进行严格的过滤、检查,使得攻击者可以通过上传木马获取服务器的webshell权限,因此文件上传漏洞带来的危害常常...

    7089bAt@PowerLi
  • dvwa实战-文件上传

    文件上传漏洞可以说是危害很大了,因为可以直接通过此漏洞getshell。漏洞原因简单点说就是由于开发人员或者网站运维人员的一些失误导致用户上传的文件可以被服务器...

    tnt阿信
  • 免密码登录

    创建一个目录存放公钥和私钥 mkdir key 生成公钥和私钥 ssh-keygen -t rsaGenerating public/private rsa ...

    零月
  • 学界 | 李飞飞等人提出MentorNet:让深度神经网络克服大数据中的噪声

    机器之心
  • 漏洞挖掘 | 一处图片引用功能导致的XSS

    一开始尝试XSS,发现程序有过滤,提交均显示Tags are not permitted,最后测出来的是过滤 < ,不过滤 >

    HACK学习
  • 睿视智觉龚纯斌:技术团队首重人才,用FPGA加速技术让图像智能解析更高效丨镁客请讲

    “技术型公司创业前必须考虑三个要素,团队、时机和资源,三者缺一不可。”睿视智觉创始人&CEO龚纯斌说,“而睿视从一开始,就独具团队优势。”

    镁客网

扫码关注云+社区

领取腾讯云代金券