Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。如果管理员未为Jupyter Notebook配置密码,将导致未授权访问漏洞,游客可在其中创建一个console并执行任意Python代码和命令,默认端口:8888。
漏洞复现
步骤一:通过以下fofa语法进行产品搜索....或使用vulhub启动靶场...
#fofa语法
"Jupyter Notebook" && port="8888" && "terminals"
#vulhub靶场
cd /vulhub/jupyter/notebook-rce
docker-compose up -d
如果存在未授权访问漏洞则直接访问 http://IP:8888
会直接跳到web管理界面,不需要输入密码。
从 New
-> Terminal
新建一个终端,通过新建的终端可执行任意命令....
漏洞修复
- 开启身份验证,防止未经授权用户访问。
- 访问控制策略,限制IP访问,绑定固定IP。