渗透测试漏洞原理之---【任意文件读取漏洞】

这篇具有很好参考价值的文章主要介绍了渗透测试漏洞原理之---【任意文件读取漏洞】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、概述

一些网站的需求,可能会提供文件查看与下载的功能。如果对用户查看或下载的文件没有限制或者限制绕过,就可以查看或下载任意文件。这些文件可以是源代码文件,配置文件,敏感文件等等。

  • 任意文件读取会造成(敏感)信息泄露;
  • 任意文件读取大多数情况是由于其他漏洞引发的,如RCE、目录遍历、文件包含等。
  • 任意文件读取与任意文件下载本质上没有区别,信息都是从服务端流向浏览器的。

任意文件读取与下载可能形式不同,但是从本质上讲读取与下载没有区别,从权限角度来讲,读取与下载都需要读权限

1.1、漏洞成因

不管是任意文件读取还是任意文件下载,触发漏洞的条件都是相同的:

  • 存在读取文件的功能(函数),也就是说,Web 应用开放了文件读取功能;
  • 读取文件的路径客户端可控,完全控制或影响文件路径参数;
  • 没有对文件路径进行校验或者校验不严导致校验被绕过;
  • 输出了文件的内容;
1.2、漏洞危害

下载服务器任意文件,包括源代码文件、系统敏感文件、配置文件等等。

可以配合其他漏洞,构成完整攻击链。对源代码文件进行代码审计,查找更多的漏洞。

任意文件读取与下载重点关注的文件:

  • 源代码
  • 配置文件
  • 敏感文件
  • 日志文件
  • 。。。。
1.3、漏洞分类
  • 任意文件读取
  • 任意文件下载
1.4、任意文件读取

以PHP 脚本为例子,有一些函数可以实现文件读取功能。

1.4.1、文件读取函数
相关函数 特点
readfile() 直接读取文件内容,
自带输出功能
file_get_contents() 直接读取文件内容,
需要输出读取内容
fread() 打开文件,
计算文件大小,
读取文件,
输出文件,
关闭文件

readfile():

// readfile.php

$fp = "../phpinfo.php";
readfile($fp);

file_get_contents():

// file_get_contents.php

$fp = "../phpinfo.php";
echo file_get_contents($fp);

fread():

// fread.php

$fp = "../phpinfo.php";
$f = fopen($fp,'r');
$f_size = filesize($fp);
echo fread($f, $f_size);
fclose($f);
1.4.2、任意文件读取

变量$fp,会捕获GET 方式传递过来的filepath 参数。

$fp = @$_GET['filepath'];

filepath 客户端可控,并且没有经过校验,会造成任意文件读取漏洞

?filepath=index.php
?filepath=/etc/passwd
?filepath=c:\windows\system32\drivers\etc\hosts
?filepath=c:\phpstudy_2016\apache\conf\httpd.conf
?filepath=c:\phpstudy_2016\mysql\my.ini
?filepath=../../../../../../../../../../phpstudy_2016/www/phpinfo.php
?filePath=../../../../../../../../windows\system32\drivers\etc\hosts
?filePath=../../../../../../etc/hosts

通过文件读取方式读取到 的文件内容不会直接显示在页面上(不会 解析php代码呈现在页面上),而是以源码的方式显示在页面源代码中,可以右键查看页面源代码

1.5、任意文件下载
1.5.1、一般情况

直接下载:例如图片另存为

a 标签下载:

<a href = './a.jpg'>点击下载图片</a>
1.5.2、PHP实现

PHP 文件下载实现过程:

  • 先读取文件
  • 在输出文件
  • 提供下载
// file-download.php

$fp = './a.jpg';
header('Content-Type:image/jpg');
header('Content-Disposition:attachment;fileName='.basename($fp));
readfile($fp);
1.5.3、任意文件下载

任意文件下载的条件:

  • 已知目标文件路径
  • 目标文件路径,客户端可控
  • 没有经过校验或校验不严格
$fp = $_GET['filepath'];

2、任意文件读取攻防

2.1、路径过滤
2.1.1、过滤…/
$fp = @$_GET['filepath'];
$fp = str_replace("../","",$fp);
readfile($fp);
2.2、简单绕过
2.2.1、双写绕过
?filepath=..././..././..././..././..././..././..././windows\system32\drivers\etc\hosts
2.2.2、绝对路径
?filepath=c:/windows\system32\drivers\etc\hosts
2.2.3、使用…\
?filepath=..\..\..\..\..\windows\system32\drivers\etc\hosts

3、任意文件读取挖掘

3.1、手工挖掘
从文件名上看 从参数上看
readfile.php
filedownload.php
filelist.php
f=
file=
filepath=
fp=
readfile=
path=
readpath=
url=
menu=
META-INF=
WEB-INF=
content=

3.2、案例

metinfo_6.0.0_readfile文章来源地址https://www.toymoban.com/news/detail-687553.html

4、漏洞修复方案

4.1、输入验证
  • 让web 用户只能访问(读取),所需要的文件和路径。
4.2、避免其他漏洞
  • 不能有文件包含漏洞,目录遍历漏洞或其他漏洞
4.3、限定文件的访问范围
  • 让用户不能访问Web 根目录以外的路径。
  • php.ini 配置文件中,可以通过选项open_basedir 来限定文件访问的范围
open_basedir = c:\www\

到了这里,关于渗透测试漏洞原理之---【任意文件读取漏洞】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络安全 --- 任意文件上传漏洞靶场闯关 6-15关】任意文件上传漏洞靶场闯关,让你更深入了解文件上传漏洞以及绕过方式方法,思路技巧

      首先分享一个自己做的很不错的网路安全笔记,内容详细介绍了许多知识 超详细的网络安全笔记 分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记​编辑https://m.tb.cn/h.5JdFcih?tk=OuVrWRl9vMx%20CZ3457 https://m.tb.cn/

    2024年02月07日
    浏览(33)
  • 任意文件读取漏洞

    任意文件读取漏洞(Arbitrary File Read Vulnerability)是指攻击者可以通过web应用程序读取任意文件而不受访问控制限制的漏洞。这种漏洞可能导致敏感信息泄露、系统崩溃等问题。 攻击者可以利用任意文件读取漏洞访问服务器上的任意文件,包括密码文件、配置文件等,从而获取

    2024年02月15日
    浏览(34)
  • 任意文件读取与下载漏洞

    任意文件读取是属于文件操作漏洞的一种,一般任意文件读取漏洞可以读取配置信息甚至系统重要文件。其中的目录遍历是由于web服务器或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安

    2023年04月09日
    浏览(32)
  • 任意文件读取及漏洞复现

    一些网站的需求,可能会提供文件查看与下载的功能。如果对用户查看或下载的文件没有限制或者限制绕过,就可以查看或下载任意文件。这些文件可以是源代码文件,配置文件,敏感文件等等。 任意文件读取会造成(敏感)信息泄露: 任意文件读取很多情况是由于其他漏

    2024年02月09日
    浏览(34)
  • 任意文件读取和漏洞复现

    一些网站的需求,可能会提供文件查看与下载的功能。如果对用户查看或下载的文件没有限制或者限制绕过,就可以查看或下载任意文件。这些文件可以是漂代码文件,配置文件,敏感文件等等。 任意文件读取会造成(敏感)信息泄露: 任意文件读取大多数情况是由于其他

    2024年02月09日
    浏览(29)
  • 【漏洞复现】OfficeWeb365 Indexs 任意文件读取漏洞

    OfficeWeb365 /Pic/Indexs接口处存在任意文件读取漏洞,攻击者可通过独特的加密方式对payload进行加密,读取任意文件,获取服务器敏感信息,使系统处于极不安全的状态。 FOFA:body=\\\"请输入furl参数\\\" || header=\\\"OfficeWeb365\\\" || banner=\\\"OfficeWeb365\\\" 读取文件加密方式

    2024年02月02日
    浏览(31)
  • 深信服应用交付报表任意文件读取漏洞

      深信服应用交付报表系统 download.php文件存在任意文件读取漏洞,攻击者通过漏洞可以下载服务器任意文件。   深信服应用交付报表系统   app=“SANGFOR-应用交付报表系统”   这里通过抓包进行文件读取,当然也可以在页面中直接进行获取。

    2024年02月10日
    浏览(34)
  • Jenkins CLI 任意文件读取漏洞复现

    Jenkins CLI 是 Jenkins 内置的命令行页面。 Jenkins 受影响版本中使用 args4j 库解析CLI命令参数,该库默认将参数中 @ 字符后的文件路径替换为文件内容,未授权的攻击者可利用该特性使用 Jenkins 控制器进程的默认字符编码读取 Jenkins 控制器文件系统上的任意文件(如加密密钥的二进

    2024年02月22日
    浏览(42)
  • 漏洞复现-Yearning front 任意文件读取漏洞(附漏洞检测脚本)

    文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担

    2024年01月18日
    浏览(27)
  • [渗透测试]—5.1 网络设备的安全漏洞

    在这一章节中,我们将重点讨论网络设备(如路由器、交换机等)的安全漏洞,以及如何进行网络设备的渗透测试。请放心,我们会尽量讲得详细、通俗易懂,并提供尽可能多的实例。 网络设备,如路由器和交换机,是构成计算机网络的基本元素。这些设备负责在网络中转发

    2024年02月11日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包