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