搜索
查看: 2015|回复: 0

pukachu文件下载漏洞

[复制链接]

577

主题

850

帖子

2161

积分

管理员

本论坛第一帅

Rank: 9Rank: 9Rank: 9

积分
2161

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

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

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

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

代码分析
$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;//向浏览器返回数据

利用
点击图片下载,并用BURP抓包

将里面的ns.png改成我们要下载的文件路径即可。比如要下载down_nba.php文件。我们改包

方便即可看到我们下载的不是图片,而是PHP文件


下载mysql的配置文件
../../../../mysql/my.ini

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
有志者,事竟成,破釜沉舟,百二秦关终属楚. 苦心人,天不负, 卧薪尝胆 ,三千越甲可吞吴
回复

使用道具 举报

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

本版积分规则

温馨提示
1:发帖请遵守《中华人民共和国网络安全法》,发帖内容不得维护国家的、集体的、个人的利益。
2:请勿发布恶意攻击他人的技术文章、工具、和使用教程,发现后删帖处理。
3:本站的目的在于让更多的人了解网络安全,避免受到他人的恶意攻击。
4:本站中的部分文章,可能会出现一些“技术类手段”,但这仅仅为学习演示所用,而非恶意传播技术。
5:本站中的部分文章,可能转载自互联网。如有侵权行为,联系我们删除即可。
6:学习仅是充实头脑,切勿恶意攻击个人、企业等。所造成的法律后果一切由自己承担,本站及其站长概不负责。
我知道了
快速回复 返回顶部 返回列表