Django SQL注入漏洞CVE-2021-35042漏洞复现及修复方法

漏洞描述:

Django 组件存在SQL注入漏洞,源于对于 QuerySet.order_by() 方法中用户输入数据的不足过滤。攻击者可以利用该漏洞,在未经授权的情况下构造恶意数据,执行SQL注入攻击,最终导致服务器敏感信息泄露。

组件介绍:

Django 是一个由 Python 编写的开源 Web 应用框架,采用了 MVC(模型-视图-控制器)框架模式。最初开发用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站,即内容管理系统(CMS)软件。

综合评价:

该漏洞属于高危漏洞,可能导致服务器敏感信息泄露。

影响版本:

  • Django 3.2
  • Django 3.1

安全版本:

  • Django >= 3.2.5
  • Django >= 3.1.13

漏洞复现:

  1. 搭建环境: 使用以下链接提供的代码进行环境搭建:GitHub 源
  2. 克隆代码并设置初始环境:git clone https://github.com/YouGina/CVE-2021-35042.git cd CVE-2021-35042 ./setup.sh
  3. 启动数据库服务:docker-compose up -d
  4. 进入 Web 服务容器:docker exec -it {container_id} /bin/bash
  5. 执行以下命令:python manage.py makemigrations cve202135042 python manage.py migrate
  6. 打开以下 URL 以加载示例数据: http://localhost:8000/load_example_data
  7. 转到易受攻击的页面: http://localhost:8000/users/

漏洞防御:

及时更新到最新版本,可参考官方发布的安全更新:Django 官方博客

备注:由于网络环境问题,漏洞复现可能会出现卡顿情况。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容