上述的文件下载URL构造,就是我在近期挖掘“任意文件下载”一类漏洞常见的构造方式;通常来说,此类的URL构造类似于“<a/>”标签,都具有一种比较难有方法的;而对于使用id参数值进行文件下载,往往是采用“SQL注入”的方式来进行突破,但这就并不是“任意文件下载”了,以为以id作为唯一文件下载索引方式的URL,是无法构造出下载约定计划以外的文件;当然了最有可能存在“任意文件下载”漏洞的URL就是“某协会文件下载接口”中的那类URL,它是通过我们给脚本文件传递一个path来下载该path指向的文件,本文中的对象,它采用了不同的服务器,无法通过任意文件下载来突破网站,除此之外,还有的则是采用“第三方”存放资源,只可惜我在撰写本文时,浏览众多网站并没有找到相关的。
讨论 2021/01/13个人认为,目前我所遇到的所有文件下载的URL构造,无非通过三类:
直接使用a标签指向资源路径位置,此类URL极难形成任意文件下载。
后端采用数据库的ID索引方式,每一个ID指向一个资源path,在后端执行path获取和下载,最大程度的减少意料之外的资源paht和恶意URL的出现,不过与此同时写需要加强SQL防注入。
向文件下载的download接口传递一个"URL/Path",接口向该地址的文件资源发起下载并返回给当前位置;这类方式是最容易出现“任意文件下载”危害的,所以不建议采用此类。