搜索
查看: 5195|回复: 0

pukachu文件下载漏洞

[复制链接]

714

主题

354

回帖

2669

积分

管理员

本论坛第一帅

积分
2669

热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2019-4-26 14:12:18 | 显示全部楼层 |阅读模式 来自 甘肃
漏洞介绍

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

                        此时如果 攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(比如../../../etc/passwd),则很有可能会直接将该指定的文件下载下来。
                        从而导致后台敏感信息(密码文件、源代码等)被下载。

代码分析
[pre]
$file_path="download/{$_GET['filename']}";//用以解决中文不能显示出来的问题
$file_path=iconv("utf-8","gb2312",$file_path);//首先要判断给定的文件存在与否
if(!file_exists($file_path)){skip("你要下载的文件不存在,请重新下载",
'unsafe_down.php');return ;}$fp=fopen($file_path,"rb");$file_size=filesize($file_path);//下载文件需要用到的头
ob_clean();//输出前一定要clean一下,否则图片打不开
Header("Content-type: application/octet-stream");Header("Accept-Ranges: bytes");Header("Accept-Length:".$file_size);Header("Content-Disposition: attachment; filename=".basename($file_path));$buffer=1024;$file_count=0;//向浏览器返回数据
[/pre]
利用
点击图片下载,并用BURP抓包
QQ截图20190426140733.png
将里面的ns.png改成我们要下载的文件路径即可。比如要下载down_nba.php文件。我们改包
QQ截图20190426140950.png
方便即可看到我们下载的不是图片,而是PHP文件
QQ截图20190426141045.png

下载mysql的配置文件
../../../../mysql/my.ini
QQ截图20190426141413.png
有志者,事竟成,破釜沉舟,百二秦关终属楚. 苦心人,天不负, 卧薪尝胆 ,三千越甲可吞吴
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表