漏洞概要 关注数(17) 关注此漏洞
缺陷编号: WooYun-2012-10431
漏洞标题: 记事狗微博后台拿shell
相关厂商: 杭州神话
漏洞作者: yy520
提交时间: 2012-08-01 10:19
公开时间: 2012-08-06 10:20
漏洞类型: 设计缺陷/逻辑错误
危害等级: 中
自评Rank: 7
漏洞状态: 漏洞已经通知厂商但是厂商忽略漏洞
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: 无
漏洞详情
披露状态:
2012-08-01: 细节已通知厂商并且等待厂商处理中
2012-08-06: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
记事狗微博系统,后台存在设计缺陷,可导致进入后台者获得shell
版本:V3.6.1 Build 20120718
详细说明:
1.系统工具->数据备份->自定义备份->选择一张数据量较小的表->更多选项->选择压缩备份文件->多分卷压缩成一个文件。
直接提交。
2.直接把备份文件下载下来,然后往备份文件添加一个zzz.php.sql,内容为<?php phpinfo();?>
3.然后找一张正常的图片 执行cat yy520.zip >> yy520.png ,前台提交yy520.png
4.获取图片的地址 images/topic/6/17/14_o.jpg,回到后台 系统工具->数据恢复
点击解压缩,用burp suite 截包
修改为:datafile_server=./images/topic/6/17/14_o.jpg
最后访问
最后的最后,请让我解释一下,为什么上面会有那么多2b的步骤。
1.
由于上面preg_match的限制,在压缩文件里面的文件名必须是以sql结尾,这个可以用apache解析绕过,所以我们的文件名必须是***.php.sql
2.
在进行导入的时候它会查看压缩包的第一个文件的头部,然后决定是直接导入,还是先解压,所以我们需要一个正常的备份文件,也就是那个yy520-1.sql
才会执行下面
3.
然后我就屁颠屁颠的跑前台上传zip文件,后来我发现上传后的zip文件路径是记录在数据库中,路径是由一个 mysql_insert_id 来随机生成滴,本来想暴力破,直接提交乌云,敷衍了事,后来想想意义不大。然后发现$unzip->ReadFile($datafile_server);可以读取jpg的,然后就把那个zip文件直接改为jpg上传,提示错误(不是一个有效的图片),看了代码
然后就必须用一个正常文件,所以必须用cat yy520.zip >> yy520.png
后台拿个shell有必要那么难为我吗~。~
漏洞证明:
这个。。。上面一块写了~~
修复方案:
稍微微的过滤一下下$datafile_server,我的礼物还没到~。~
版权声明:转载请注明来源 yy520@乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2012-08-06 10:20
厂商回复:
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值
100%
0%
0%
0%