Pikachu靶场通关之Unsafe Filedownload
一、本文介绍
今天,我们来学习一项web安全里最常见的漏洞,Unsafe Filedownload。本篇文章将会带领大家进入到Unsafe Filedownload这项漏洞的世界里,让大家领略到Unsafe Filedownload这项漏洞的魅力,从而对Unsafe Filedownload漏洞有更深刻的认识。
学习一项新的漏洞,简单来说,我们要从四个方面来入手,第一个方面是产生这项漏洞的原因,不管是从代码层面,还是从逻辑层面等方面,来对这项漏洞有一个清楚的认识,有位大佬说得好,只有对漏洞原理了如指掌,才会有更多的突破点来挖掘漏洞;第二个方面是这项漏洞应该如何利用,是直接使用漏洞利用的各种工具,还是自己的写或者是借鉴其他大佬的漏洞利用的脚本等,漏洞利用的方式不一而同,具体问题具体分析;第三个方面是这项漏洞对网站等能够造成什么样危害,能够达到什么样的效果,是获取网站的权限,还是获取管理员或者用户的账号密码或者是敏感信息等;第四个方面当然是,我们应该如何去防范这项漏洞,以及这项漏洞的修复方式,分别从代码层面、逻辑层面等方面如何去修复。
本篇文章将分别从Unsafe Filedownload漏洞的原理、Unsafe Filedownload漏洞如何利用、Unsafe Filedownload漏洞的危害以及Unsafe Filedownload漏洞如何防范与修复这四个方面,来和大家一起学习Unsafe Filedownload这项漏洞,下面我们进入正题。
二、Unsafe Filedownload的原理
不安全的文件下载概述
文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文件名对应的文件response给浏览器,从而完成下载。 如果后台在收到请求的文件名后,将其直接拼进下载文件的路径中而不对其进行安全判断的话,则可能会引发不安全的文件下载漏洞。
此时如果 攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(比如/etc/passwd),则很有可能会直接将该指定的文件下载下来。 从而导致后台敏感信息(密码文件、源代码等)被下载。
所以,在设计文件下载功能时,如果下载的目标文件是由前端传进来的,则一定要对传进来的文件进行安全考虑。 切记:所有与前端交互的数据都是不安全的,不能掉以轻心!
三、Unsafe Filedownload的利用
1.Unsafe Filedownload
首先进入页面,发现上面有1996黄金一代的12位球员,Notice中提醒我们,点击球员名字即可下载图片:
点击球员名字,观察后台可以看到,通过点击前端链接,去查找后台的对应的图片,再反馈给前端进行下载,相当于把一个文件名传到后端,后台去找这个文件,然后响应输出到前端发下他没有做任何的防护,抓包查看数据包
修改filename的值为filename=https://www.freebuf.com/articles/down_nba.php,然后通过repeater重发
Forward后,直接下载修改后的文件
查看下载后的文件
2.以下整理了一些下载利用文件
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?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
/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参数
四、Unsafe Filedownload的危害
通过任意文件下载,可以下载服务器的任意文件,web业务的代码,服务器和系统的具体配置信息,也可以下载数据库的配置信息,可用得到的代码进一步代码审计,得到更多可利用漏洞以及对内网的信息探测等等
五、Unsafe Filedownload的修复
1.对传入的文件名进行严格的过滤和限定
2.对文件下载的目录进行严格的限定
3.过滤.(点),使用户在url中不能回溯上级目录
4.* 正则严格判断用户输入参数的格式
5.* php.ini配置open_basedir限定文件访问范围
六、本文总结
到此为止,通过本篇文章,我们大家分别从Unsafe Filedownload漏洞的原理、Unsafe Filedownload漏洞如何利用、Unsafe Filedownload漏洞的危害以及Unsafe Filedownload漏洞如何防范与修复这四个方面,一起学习了Unsafe Filedownload这项漏洞,相信大家已经对Unsafe Filedownload这项漏洞有了明确而深刻的认识。
本人之后还会陆续分享我在网络安全与渗透测试学习之路上的各种笔记,包括且不限于各种漏洞原理、漏洞挖掘、漏洞复现以及靶场CTF通关教程等等,希望大家多多点赞关注支持。
免责声明:本站提供的安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
转载声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
欢迎关注公众号:国服最强渗透掌控者
一名普通的白帽子,努力追求着成为国服最强渗透掌控者的梦想,希望我的分享能够给大家带来帮助,并且能够为网络安全事业做出自己的贡献。此生无悔入网安,争做渗透第一人。