一文看懂Python沙箱逃逸(7)
发布时间:2019-05-22 17:40 所属栏目:20 来源:Macr0phag3
导读:可以看到,site 就在里面,以 2.x 的site._Printer为例: ''.__class__.__mro__[-1].__subclasses__()[71]._Printer__setup.__globals__['os'] module'os'from'/Users/macr0phag3/.pyenv/versions/2.7.15/lib/pytho
可以看到,site 就在里面,以 2.x 的site._Printer为例:
os 又回来了。并且 site 中还有 __builtins__。 这个方法不仅限于 A->os,还阔以是 A->B->os,比如 2.x 中的 warnings:
在继承链中就可以这样:
顺便说一下,warnings这个库中有个函数:warnings.catch_warnings,它有个_module属性:
所以通过_module也可以构造 payload:
3.x 中的warnings虽然没有 linecache,也有__builtins__。 同样,py3.x 中有,利用方式可以为:
顺便提一下,object 本来就是可以使用的,如果没过滤这个变量的话,payload 可以简化为:
还有一种是利用builtin_function_or_method 的 __call__:
或者简单一点:
(编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读