• 欢迎访问挑战自我博客网站,安全研究,web渗透,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入挑战自我博客网站 网站主页

[Buddypress] 修改头像函数缺陷导致实现任意文件删除

挖洞经验 挑战自我 来源:hackerone翻译 1583次浏览 已收录 0个评论

1、漏洞简介

在BuddyPress中,当裁剪头像时bp_avatar_set函数允许攻击者删除服务器的任意一个文件,这些文件是服务器通过original_file这个参数来实现删除的

2、Buddypress简介

    BuddyPress 是 WordPress 母公司的一个全新的开源程序,BuddyPress 从本质上说其实是 WordPress 的插件。BuddyPress 把 WordPress的关注点从博客转移到了社区。当然,用户还是能够使用WordPress的所有的博客功能,只是当用户使用 BuddyPress 时,第一要做的是创建他们个人档案,第二才是写博客。

3、漏洞测试情况

在BuddyPress中,当裁剪头像时bp_avatar_set函数允许攻击者删除服务器的任意一个文件,这些文件是服务器通过original_file这个参数来实现删除的

For example:
举例说明:

步骤一

在基于Buddypress架设的Wordpress实例中创建一个用户(任何用户都可以,不需要管理员,只需要有权限在Buddypress的配置中修改自己的头像即可)

步骤二

切换页面至头像修改页面,例如我的安装服务器是这个目录:/members//profile/change-avatar/,点击上传按钮选择一个正常的图片上传。放行第一次正常上传图片的网页数据。

步骤三

选择裁剪按钮,但是这次我没有放行请求数据(我用的是Burp工具,并开启了阶段模式),修改请求数据,把original_file参数的值修改为你想要删除的文件,如果需要目录递归,可以使用../../等操作符。
例如我修改后的参数值如下:

original_file=http%3A%2F%2Flocalhost%2F~sam%2Fwordpress%2Fwp-content%2Fuploads%2Favatars%2F2%2Fmy_ugly_face.jpg

Change to:

original_file=http%3A%2F%2Flocalhost%2F~sam%2Fwordpress%2Fwp-content%2Fuploads%2Favatars%2F2%2F../../../../../wp-config.php

记住,这个文件的目录有可能是一个数字型的目录,所以你需要在正常修改的URL中多添加一个..符号,其实你可以上传一个正常的图片来测试网站的文件存储目录结构,这样可以帮助你实现漏洞挖掘工作。

在我的测试案例中,当请求生效时wp-config.php将被删除,当然,博客也将不可用。

4、简单的修复建议

这个请求数据中的路径需要被验证,使得只能删除上传的头像文件()(当我对上传目录进行限制时,仍然允许删除其他用户的头像或者其上传的文件)


挑战自我博客, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明[Buddypress] 修改头像函数缺陷导致实现任意文件删除
喜欢 (16)
支付宝[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址