- 目录
- 1. 序章
- 2. 计算机网络与协议
- 3. 信息收集
- 4. 常见漏洞攻防
- 5. 语言与框架
- 6. 内网渗透
- 7. 云安全
- 8. 防御技术
- 9. 认证机制
- 10. 工具与资源
- 11. 手册速查
- 12. 其他
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
5.2.3. 沙箱
5.2.3. 沙箱
5.2.3.1. 常用函数
- eval / exec / compile
- dir / type
- globals / locals / vars
- getattr / setattr
5.2.3.2. 导入包方式
import os
from os import *
__import__("os")
importlib
imp
reload(os)
execfile
仅Python2支持
5.2.3.3. 绕过
dir(__builtins__)
查看内置模块- 最简单的思路是在已有的模块中import,如果那个模块中已经 import 可以利用的模块就可以使用了
- 在父类中寻找可用的模块,最常见payload是
().__class__.__bases__[0].__subclasses__()
或者用魔术方法获取全局作用域__init__.__func__.__globals__
- 有些网站没有过滤 pickle 模块,可以使用 pickle 实现任意代码执行,生成 payload 可以使用
https://gist.github.com/freddyb/3360650
- 有的沙箱把相关的模块代码都被删除了,则可以使用libc中的函数,Python 中调用一般可以使用 ctypes 或者 cffi。
"A""B" == "AB"
5.2.3.4. 防御
Python官方给出了一些防御的建议
- 使用Jython并尝试使用Java平台来锁定程序的权限
- 使用fakeroot来避免
- 使用一些rootjail的技术
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论