在文件下载操作中,文件名及路径由客户端传入的参数控制,并且未进行有效的过滤,导致用户可恶意下载任意文
件。
0x01 客户端下载
常见于系统中存在文件(附件/文档等资源)下载的地方。
漏洞示例代码:
文件名用户可控,导致存在任意文件下载漏洞,攻击者提交url:
1. test.php?filename=test.php
即可下载test.php源码,可实现跨目录下载系统中的任意文件。
0x02 服务端下载
常见于系统第三方补丁升级/插件安装、远程图片本地化。
0x03 任意文件读取
漏洞示例代码:
可以看到参数并未进行任何过滤或处理,直接导入readfile函数中执行,导致程序在实现上存在任意文件读取漏洞。
<?php
$filename = $_GET['filename'];
echo file_get_contents($filename);
header('Content-Type: imgage/jpeg'
header('Content-Disposition: attachment; filename='.$filename);
header('Content-Lengh: '.filesize($filename));
?>
评论0
最新资源