Tornado 框架某缺陷可能造成文件读取漏洞

2015-03-02 00:08:01 +08:00
 RIcter
http://wooyun.org/bugs/wooyun-2015-098978
简直爆炸_(:з」∠)_
5825 次点击
所在节点    Python
19 条回复
kslr
2015-03-02 00:15:46 +08:00
可能,期待公布过程
mywaiting
2015-03-02 00:17:40 +08:00
StaticFileHandler的问题?
RIcter
2015-03-02 00:18:18 +08:00
@mywaiting 我估计也是,但是不敢确定,稍微看一下代码好了
Livid
2015-03-02 00:33:50 +08:00
把可能需要用到 StaticFileHandler 的地方都换到 Nginx 里配置吧。
evlos
2015-03-02 00:34:55 +08:00
Wut?! 赶紧出补丁啊啊啊!
RIcter
2015-03-02 00:48:39 +08:00
@Livid
@evlos
@mywaiting
@kslr
不仅仅是 StaticFileHandler 的样子, settings 里的 static_file 也一样。
**大体**测试出来在 **Windows** 下可以读取文件,而且不是任意文件。
比如:

settings = {
"static_path": os.path.join(os.path.dirname(__file__), "xxx")
}

curl http://10.211.55.5:8888/static/static\\\\..\\..\\xxx.txt

文件名要和指定的目录一样,略鸡肋。不过我不确定 wooyun 上的漏洞和我是否一样 :(
latyas
2015-03-02 00:54:25 +08:00
?还有人用web framework的static配置来路由静态文件?
mywaiting
2015-03-02 01:02:30 +08:00
@RIcter 这速度,我略表汗颜......

settings里面的static_file默认也是调用StaticFileHandler来实现的。

@Livid 翻了一下V2EX的HTML源代码,有必要提醒一下,这样的URL:

https://www.v2ex.com/static/js/v2ex.js?v=8a80fb0cbc5ebd7a71574b13793cef3b

就已经是调用了StaticFileHandler来实现在链接后面加上v=version这样的版本号的。
Livid
2015-03-02 01:23:10 +08:00
@mywaiting StaticFileHandler 确实生成了后面的版本号,但是网站在提供服务时,在 Nginx 配置里加入这样一段:

location ^~ /static/ {

root /example/site;
expires max;

}
typcn
2015-03-02 01:32:37 +08:00
@Livid 另外提醒一下,你相信了来自客户端的数据,
X-Forwarded-For:127.0.0.1 就可以无视你的访问频率限制了
bfti
2015-03-02 04:57:34 +08:00
如果不看乌云,服务器就很可能被入侵么?
ehs2013
2015-03-02 07:40:22 +08:00
没在生产中用过 StaticFileHandler。
futursolo
2015-03-02 08:01:18 +08:00
用GridFS的就偶一个?
letitbesqzr
2015-03-02 10:34:55 +08:00
@typcn 但如果不去读X-Forwarded-For头,有些大学或者大型网络里只有一个出口ip,那不会影响正常用户访问?
geew
2015-03-02 11:00:34 +08:00
tornado 的 StaticFileHandler一般不用在生产环境中的吧 官方也不推荐...
raincious
2015-03-02 11:08:08 +08:00
@letitbesqzr

X-Forwarded-For其实并非不安全,没做校验检查才会造成不安全。 X-Forwarded-For这东西需要搭配TrustedProxies表来用才是安全的,但是部署人员就多了个职责。多框架只是将它解析出来了而已,数据是否伪造其实是未知的。
est
2015-03-02 11:58:20 +08:00
@raincious 赞头像。。。

其实办法很多啦。改个X-MY-REAL-Forwarded_For 欢迎来猜我用的什么头
est
2015-03-02 12:01:15 +08:00
如果真是StaticFileHandler,而且是windows only,那么估计没人理会这漏洞。。。。。。。。生产环境中这个招的也只能说活该呃。。。。。。
feelapi
2015-03-02 12:26:39 +08:00
@typcn 可以完全使用nginx处理静态文件么?那不是要求网站的url设计要小心,静态的页面也要放在特别的位置,比如API Docs这种只读的页面。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/173839

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX