四、任意文件读取漏洞

news2025/4/5 10:45:43

一、介绍

解释:任意文件读取漏洞就其本身来说就是,攻击者绕过网站防御者设置的防御,读取到了正常使用者不应该读取到的内容。网站开发者使用不同的语言,任意文件读取漏洞利用方式就不同

二、不同开发语言的不同漏洞点

1.PHP

介绍:PHP的任意文件读取漏洞主要通过下面这些函数错误使用导致

1.1 PHP常用文件包含函数

  1. require():找不到被包含的文件会产生致命错误,并停止脚本运行
  2. include():找不到被包含的文件只会产生警告,脚本继续执行
  3. require_once()与require()类似:唯一的区别是如果该文件的代码已经被包含,则不会再次包含
  4. include_once()与include()类似:唯一的区别是如果该文件的代码已经被包含,则不会再次包含

1.2 伪协议

解释:PHP内置了很多伪协议,其可能会造成任意文件读取,执行任意命令等问题,这样的知识点是PHP“任意文件读取漏洞”的关键

文章在此:二、PHP伪协议

1.3 目录穿越

解释:因为include对内容的解析问题,存在该漏洞,包括在window上面有类似但不同的情况(如下图),下面例子cd到一个不存在的目录11515,然后../返回上一级目录,此时相当于原地踏步,这种情况可能就会导致攻击能够绕过一些正则进行目录穿越来暴力访问文件

在这里插入图片描述

<?php
include 'dwadawdaw?/../a.php';
?>
上面的例子相当于先cd 进入了dwadawdaw?这个目录发现其不存在,然后执行../a.php,翻译过来相当于include 'a.php';

include 'dwadawdaw?/../../a.php'; 等价于include '../a.php';

1.4 任意代码执行

解释:在php里面include函数,在执行的时候,如果可以将被包含文件里面的内容当做php代码执行,也就是说,比如include包含了一个png文件,但是里面写的都是php代码,这个png就会被当作php代码去执行,如果此时png里面是一句话木马的话,此时网站就被攻击者植入了webshell

例如:
在这里插入图片描述
解释:从上图文件可知道,page对应include加载的文件,a文件内容如下,其并非php后缀文件但是却被当作php执行了

<?php
echo 'odwadawdwak';
?>

1.5 远程文件包含

解释:当php配置项allow_url_includeallow_url_fopen状态为ON的话,则include/require函数是可以加载远程文件,远程文件->其它服务器上的php文件,这种设置如果代码存在文件包含漏洞可能会造成致命的威胁

三、重要文件的作用

解释:当我们发现文件读取漏洞,一般会对重要文件进行读取,例如/etc/passwd,下面就会说我们能够从这些文件中获取哪些有用的信息

  • /etc/passwd:Linux系统保存用户信息及其工作目录的文件,读到这个文件我们就可以知道系统存在哪些用户、他们所属的组是什么、工作目录是什么;其中目录为/home/xxx一般是普通用户,其它一般是软件用户(权限:所有用户/组可读)
    在这里插入图片描述

  • /etc/shadow:Linux系统保存用户信息及密码(hash)的文件,比/etc/passwd更加具备价值;其中有用户的哈希密码,如果获取可能在本地进行碰撞获取明文(权限:所有者具有读写权限,属组(shadow)具有只读权限,其他用户没有任何权限)
    在这里插入图片描述

  • /etc/apache2/:apache的配置文件保存在此目录下面,/etc/apache2/apache2.conf是主配置文件,/etc/apache2/sites-enabled下面有具体的包括网站路径端口域名等配置(如下图)
    在这里插入图片描述

  • /etc/nginx/:nginx的配置文件保存在此目录下面,/etc/nginx/nginx.conf是主配置文件,/etc/nginx/sites-enabled下面有具体的包括网站路径端口域名等配置(如下图)
    在这里插入图片描述

  • /proc:通常存储着进程动态运行的各种信息,本质上是一种虚拟目录,如果遇到文件读取漏洞,可以通过读取

    • /proc/self/cmdline读取一些敏感信息(可能有当前项目启动时,启动命令例如:python3 app.py);
    • /proc/[pid]/cmdline则与上面类似,读取pid号对应进行的一些敏感信息
    • /proc/self/mem:其是一个特殊文件,它提供对当前进程地址空间的访问,例如在Flask里面启动项目加载一个密钥,其就存在于此文件中,可以先通过/proc/self/maps(其里面包含进程相关的启动地址、结束地址、权限、内存区域对应文件的路径),下面演示相关代码由于篇幅问题在另一篇文章:Flask存储在内存中的密钥被读取

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

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

相关文章

(更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)

A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数&#xff08;2009-2023年&#xff09;参考《经济研究》中方先明&#xff08;2023&#xff09;的做法&#xff0c;将华证ESG评级进行赋值&#xff0c;指标包含C、CC、CCC、B、BB、BBB、A、AA、AAA共9个等级&#xff0c;…

使用Go语言的HTTP客户端和服务器

使用Go语言进行HTTP客户端和服务器开发是一种高效且强大的方式。Go语言的标准库提供了对HTTP协议的全面支持&#xff0c;使得创建HTTP客户端和服务器变得简单。 首先&#xff0c;让我们来看一下如何创建一个简单的HTTP服务器。在Go中&#xff0c;可以使用net/http包来创建HTTP…

抖音弹幕玩法汉字找不同让鼠标指针自动漂浮的实现原理及代码

如下图&#xff0c;抖音直播间弹幕互动玩法&#xff0c;为了增强用户的视觉感知体验&#xff0c;在里面加了一个鼠标&#xff0c;来让用户感知到自己在操作。下一节我们将背景音乐也给加上去。 我们实现的方案是用anime.js动画&#xff0c;来让一个图片在指定区域范围内随机漂浮…

WebGL开发智慧城市应用

在使用WebGL实现智慧城市应用时&#xff0c;需要考虑一系列的问题&#xff0c;以确保系统的性能、安全性和用户体验。以下是在开发WebGL智慧城市应用时需要注意的问题&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;…

从源码中分析SDS相较于C字符串的优势

文章目录 前言Type && EncodingsdsencodingcreateStringObjectcreateEmbeddedStringObject总结 createRawStringObject总结 createStringObjectFromLongDouble总结 createStringObjectFromLongLongWithOptions总结 相关操作sdscatlen总结 阈值44sds VS C字符串 前言 从…

加密经济学:Web3时代的新经济模型

随着Web3技术的迅猛发展&#xff0c;我们正迈入一个全新的数字经济时代。加密经济学作为这一时代的核心&#xff0c;不仅在数字货币领域崭露头角&#xff0c;更是重新定义了传统经济模型&#xff0c;为我们开启了一个充满创新和机遇的新纪元。 1. 去中心化的经济体系 Web3时代…

12.1、2、3-同步状态机的结构以及Mealy和Moore状态机的区别

同步状态机的结构以及Mealy和Moore状态机的区别 1&#xff0c;介绍Mealy型状态机和Moore型状态机的两种结构2&#xff0c;设计高速电路的方法 由于寄存器传输级&#xff08;RTL&#xff09;描述的是以时序逻辑抽象所得到的有限状态机为依据&#xff0c;因此&#xff0c;把一个时…

【嘉立创EDA-PCB设计指南】1.PCB基本概念及原理图绘制

前言&#xff1a;本文详解PCB基本概念以及实现MCU最小系统原理图的绘制&#xff08;原理图包括MCU芯片GD32F103C8T6、外部晶振、输出端口、USB输入口、5v转3v3稳压输出、复位按键、唤醒按键、LED&#xff09;。为本专栏后面章节实现PCB绘制做准备。 最终绘制的原理图如下所示&…

LinkedList ArrayDeque源码阅读

文章目录 LinkedList简介LinkedList例子LinkedList继承结构LinkedList代码分析成员变量方法 ArrayDeque简介ArrayDeque继承结构ArrayDeque代码分析总结参考链接 本人的源码阅读主要聚焦于类的使用场景&#xff0c;一般只在java层面进行分析&#xff0c;没有深入到一些native方法…

Java零基础教学文档servlet(3)

【AJax】 1.传统开发模式的不足 传统开发模式基于浏览器数据传输功能,页面填写数据/展示数据。浏览器通过访问一个URL地址&#xff0c;将页面的数据提交给服务器。服务器将需要展示的数据返回给浏览器&#xff0c;浏览器再进行数据解析&#xff0c;将数据呈现在用户面前。这种…

QT quick基础:加载资源文件(字体)

一、加载字体 1、准备字体库 Roboto-Regular.ttf 2、在工程下面新建文件夹fonts&#xff0c;并将字体库放到该文件夹下面。 3、在QT Create 工程中添加字体。 添加现有文件选择Roboto-Regular.ttf。 4、执行qmake 5、在.qml文件加载字体 /* 加载字体 */FontLoader {id: f…

如何在 Windows 10 中恢复已删除的文件

几乎每个 Windows PC 用户都曾意外删除过他们想要保留的文件。尽管您的第一步应该是检查回收站&#xff0c;但它可能不在那里。Windows 10 不会自动将所有已删除的文件保留在回收站中。有时它会永久删除文件&#xff0c;让您再也看不到它们。如果您遇到这种情况&#xff0c;我们…

如何使用Docker一键部署WBO白板并实现固定公网地址远程访问

文章目录 前言1. 部署WBO白板2. 本地访问WBO白板3. Linux 安装cpolar4. 配置WBO公网访问地址5. 公网远程访问WBO白板6. 固定WBO白板公网地址 前言 WBO在线协作白板是一个自由和开源的在线协作白板&#xff0c;允许多个用户同时在一个虚拟的大型白板上画图。该白板对所有线上用…

AI数字人短视频变现项目:打造短视频运营变现新模式

随着社交媒体和短视频平台的兴起&#xff0c;越来越多的人开始关注如何将短视频变现。在这个时代&#xff0c;创新和科技成为了推动变现模式发展的关键。AI数字人作为一种全新的创新形式&#xff0c;正在迅速进入人们的视野。本文将介绍AI数字人短视频变现项目&#xff0c;以及…

新晋中科院TOP,不到3个月出结果,编辑处理效率真心高!

【SciencePub学术】 Measurement 期刊评说 网 友 辣 评 评说1&#xff1a;不到三个月出结果&#xff0c;挺快的&#xff0c;期刊效率高&#xff0c;2023年12月27日期刊更新成TOP了&#xff0c;值得推荐&#xff01; 评说2&#xff1a;一般送审了就问题不大&#xff0c;超过…

公众号申请数量已超上限的解决方法

一般可以申请多少个公众号&#xff1f; 公众号申请限额在过去几年内的经历了很多变化。对公众号申请限额进行调整是出于多种原因&#xff0c;确保公众号内容的质量和合规性。企业公众号的申请数量从50个到5个最后到2个&#xff0c;对于新媒体公司来说&#xff0c;这导致做不了…

分类预测 | Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测

分类预测 | Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测 目录 分类预测 | Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测。 2.自带数据…

用Perl采集美容化妆目标网站做一个深度调研

在Perl中编写爬虫程序涉及到几个关键步骤&#xff0c;包括使用相关的库来发送HTTP请求和解析HTML内容。首先我们要了解Perl爬虫程序编程得几大步骤&#xff1a;安装必要的Perl模块—创建一个用户代理—发送HTTP请求—解析响应内容—提取所需数据—存储或进一步处理数据。所以说…

设计模式之开闭原则:如何优雅地扩展软件系统

在现代软件开发中&#xff0c;设计模式是解决常见问题的最佳实践。其中&#xff0c;开闭原则作为面向对象设计的六大基本原则之一&#xff0c;为软件系统的可维护性和扩展性提供了强大的支持。本文将深入探讨开闭原则的核心理念&#xff0c;以及如何在实际项目中运用这一原则&a…

2024山东省“信息安全管理与评估“---内存取证(高职组)

2024山东省“信息安全管理与评估“—内存取证(高职组) PS:需要环境私信博主 内存取证: 任务环境说明: 攻击机:kali 物理机:Windows 任务说明:本次需要检测的镜像已放置放在本机桌面上。 这里想学取证的小伙伴可以参考:http://t.csdnimg.cn/EHwpu 1.从内存中获取到用户…