DVWA-文件包含漏洞
本周学习内容:
1.学习web安全深度剖析;
2.学习安全视频;
3.学习乌云漏洞;
4.学习W3School中PHP;
实验内容:
进行DVWA文件包含实验
实验步骤:
Low
1.打开DVWA,进入DVWA Security模块将 Level修改为Low,点击Submit提交;

2.打开File Inclusion文件包含漏洞模块。

3.点击View Source查看服务器代码,发现对Page参数没有任何过滤和校验

4.导致的就是page参数的传入是不可控,构造url http://localhost:8088/dvwa/vulnerabilities/fi/?page=php.ini

5.发现没有成功页面报错了,但是错误信息中暴露了服务器的绝对路径,接下来使用服务器绝对路径,接下来可以利用服务器绝对路径进行伪造http://localhost:8088/dvwa/vulnerabilities/fi/?page=C:\tools\xampp\htdocs\dvwa\php.ini

6.利用绝对路径查看PHP配置文件http://localhost:8088/dvwa/vulnerabilities/fi/?page=C:\tools\xampp\htdocs\dvwa\phpinfo.php

远程文件包含:
1.如果服务器的php.ini配置文件中,选项allow_url_fopen与allow_url_include为On时,服务器会允许包含远程服务器上的文件,如果对文件来源没有检查的话,就容易导致任意远程代码执行。编辑一个txt文件phpinfo1.txt文件,这里的代码只是打印一句话

2.进入文件上传File Upload模块上传phpinfo1.txt文件,并复制上传链接的相对路径

2.回到文件包含模块构造URL,http://localhost:8088/dvwa/vulnerabilities/fi/?page=http://169.254.167.216:8088/dvwa/hackable/uploads/phpinfo1.txt点击进入,可以看到txt文件中的php脚本成功显示在页面上

Medium
1.打开DVWA,进入DVWA Security模块将 Level修改为Medium,点击Submit提交;

2.打开File Inclusion文件包含漏洞模块。

3.查看服务器源代码,发现中级代码中增加了对输入的校验,使用str_replace函数将输入信息中的http、https、../和../"替换为空


4.此时可以使用双写hthttp://tp://进行远程文件包含的方法进行实验,这是因为代码中把http://删除,所以输入的URL有变成了http://(HTTPS也是一样的)

High
1.打开DVWA,进入DVWA Security模块将 Level修改为High,点击Submit提交;

2.打开File Inclusion文件包含漏洞模块。

3.查看服务器源代码,High级别的代码使用了fnmatch函数检查page参数,要求page参数的开头必须是file,服务器才会去包含相应的文件。

4.当把一个本地文件拖入浏览器打开时,用的就是file协议。

5.构造url http://localhost:8088/dvwa/vulnerabilities/fi/?page=file:///C:/tools/xampp/htdocs/dvwa/hackable/uploads/phpinfo1.txt

Impossible
1.打开DVWA,进入DVWA Security模块将 Level修改为Impossible,点击Submit提交;

2.打开File Inclusion文件包含漏洞模块

3.查看服务器源代码,可以看出Impossible级别的代码,使page的参数是能为“include.php”、“file1.php”、“file2.php”、“file3.php”,限制访问的页面页面。只能访问页面中的这三个文件

DVWA-文件包含漏洞的更多相关文章
- 2. DVWA亲测文件包含漏洞
Low级: 我们分别点击这几个file.php文件 仅仅是配置参数的变化: http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file3.php 如 ...
- 文件包含漏洞(DVWA环境中复现)
LOW: 源代码: <?php // The page we wish to display $file = $_GET[ 'page' ]; ?> 可以看到,low级别的代码对包含的文件 ...
- DVWA各级文件包含漏洞
File Inclusion文件包含漏洞 漏洞分析 程序开发人员通常会把可重复使用的函数写入到单个文件中,在使用某些函数时,直接调用此文件,而无需再次编写,这种调用文件的过程被称为包含. 有时候由于网 ...
- Kali学习笔记31:目录遍历漏洞、文件包含漏洞
文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 目录遍历漏洞: 应用程序如果有操作文件的功能,限制不严 ...
- php伪协议,利用文件包含漏洞
php支持多种封装协议,这些协议常被CTF出题中与文件包含漏洞结合,这里做个小总结.实验用的是DVWA平台,low级别,phpstudy中的设置为5.4.45版本, 设置allow_url_fopen ...
- 本地文件包含漏洞(LFI漏洞)
0x00 前言 本文的主要目的是分享在服务器遭受文件包含漏洞时,使用各种技术对Web服务器进行攻击的想法. 我们都知道LFI漏洞允许用户通过在URL中包括一个文件.在本文中,我使用了bWAPP和DVW ...
- 文件包含漏洞File Inclusion
文件包含漏洞 目录遍历漏洞在国内外有许多不同的叫法,也可以叫做信息泄露漏洞.非授权文件包含漏洞等. 文件包含分类 LFI:本地文件包含(Local File Inclusion) RFI:远程文件包含 ...
- PHP:文件包含漏洞
简单记录一些文件包含漏洞的常用方法 产生原因: 文件包含漏洞的产生原因是在通过引入文件时,由于传入的文件名没有经过合理的校验,或者校检被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意 ...
- 配合php伪协议利用文件包含漏洞
文章来源: https://blog.csdn.net/zpy1998zpy/article/details/80598768?utm_medium=distribute.pc_relevant.no ...
- PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)
摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的 ...
随机推荐
- Numpy学习笔记(下篇)
目录 Numpy学习笔记(下篇) 一.Numpy数组的合并与分割操作 1.合并操作 2.分割操作 二.Numpy中的矩阵运算 1.Universal Function 2.矩阵运算 3.向量和矩阵运算 ...
- VirtualBox导入OVA文件文档教程
1 2 修改框住的路径,最好不要在C盘 3 取消检查更新 4 5 6 7 8 9 10 11 等待加载完成:加载完成后 OVA文件导入成功 作者:含笑半步颠√ 博客链接:https://www.cnb ...
- Ubuntu 18.04 Server 配置静态ip
刚在虚拟机里面状态了一个 Ubunut 18.04 Server 作为我的服务器,我习惯使用静态ip首先再virtualbox中设置虚拟机网络的连接方式为桥接模式进入ubuntu虚拟机根据我的印象直接 ...
- java之hibernate之基于外键的双向一对一关联映射
这篇讲解 基于外键的双向一对一关联映射 1.考察如下信息,人和身份证之间是一个一对一的关系.表的设计 2.类结构 Person.java public class Person implements ...
- JAVA中循环遍历list有三种方式
转自:https://blog.csdn.net/changjizhi1212/article/details/81036509JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常 ...
- csrf 功能 及 csrf装饰器使用
目录 csrf 功能 及 csrf装饰器使用 简单了解csrf 防范措施 了解更多csrf点击 django 中 csrf csrf装饰器 csrf功能(执行流程) csrf 功能 及 csrf装饰器 ...
- Oracle 操作数据库(增删改语句)
对数据库的操作除了查询,还包括插入.更新和删除等数据操作.后3种数据操作使用的 SQL 语言也称为数据操纵语言(DML). 一.插入数据(insert 语句) 插入数据就是将数据记录添加到已经存在的数 ...
- CRM, C4C和SAP Hybris的数据库层设计
SAP的product都是DB provider无关的. CRM大家都很熟悉了,application developer最多用Open SQL直接操作表. Netweaver里支持的DB provi ...
- javascript 四舍五入; js 四舍五入
方法 Math.round round() 方法可把一个数字舍入为最接近的整数. 对于 0.5,该方法将进行上舍入. 例如,3.5 将舍入为 4,而 -3.5 将舍入为 -3. Math.round( ...
- 用c#监控网络流量
using System; using System.Text; using System.Net; using System.Net.Sockets; using System.Runtime.In ...