文件下载接口的URL构造分析与讨论 某学院的文件下载接口
****.edu.cn/item/filedown.asp?id=76749&Ext=rar&fname=filedown.rar
参数分析:
id 资源的id
Ext 资源的文件下载格式
fname 文件下载后的名字
逻辑原理:
发送参数给filedown.asp,asp文件接收参数id的值并从数据库查询对于ID资源的URL地址,并且下载;按照ext格式进行下载返回,按照fname对下载返回的文件命名。
某协会文件下载接口****.org.cn/content/download.do?filename=test.doc&url=group1/M00/05/38/Cj0BE16hNJKAIuAEAAFkAF_b3No247.doc
参数分析:
filename 文件下载后的名字
url 文件的下载路径
通过页面的标签分析,我们寻找到downloadfile()函数,我们调用该函数,我们则成功的下载了该函数,我们综合分析该URL地址:
****.org.cn/content/download.do?filename=test.doc&url=group1/M00/05/38/Cj0BE16hNJKAIuAEAAFkAF_b3No247.docfilename 文件下载后的名字
url 文件的下载路径
分析得知group1/M00/05/38/Cj0BE16hNJKAIuAEAAFkAF_b3No247.doc是该文件的一个“相对”路径,但我们不知道这个路径的全部,于是我们测试一下:
****.org.cn/group1/M00/05/38/Cj0BE16hNJKAIuAEAAFkAF_b3No247.doc结果是不尽人意的。
根据开发的习惯,通常这类的文件资源都会放到同一个路径位置,于是我们去寻找该站点的文件资源(比如:声音、图片、视频);果然,找到了这样的一个地址:
***.**.***:80/group1/M00/07/15/Cj0BE18NZcyAAI-uAAEGa1djidw254.jpg仔细一看和我们之前DOC文件的路径大致相同,于是我们“动手”吧:
***.**.***:80/group1/M00/05/38/Cj0BE16hNJKAIuAEAAFkAF_b3No247.doc成功,我们现在确定了该文件的位置,在接下来就是一步一步的构造POC:
***.**.***:80/../../../../../../../../../../etc/passwdPayload:
url=../../../../../../../etc/passwd在不继续追究讨论如果突破的前提下,我分析就到此了;不过细心的人已经发现,文件资源存放的服务器和网站并不在同一台机器中,也就是说,我们的"任意文件下载"并无法直接危害到网站,这也是一种有效的预防措施。(突破失败)
某基金会文件下载处接口URL和数据包****.org.cn//downlog/insert
ninfor.js
分析post的数据,可以发现,id参数是索引文件的关键参数。
某律师事务所网站的文件下载处URL这是多数网站采用的文件下载的方式方法,该方法就是通过<a href="http://www.likecs.com/****"/>来下载某个目录下的文件,该方法时最低技术水平的有效方法,当然了,在信安测试,为了放置目录资料被有效的遍历,都会要求将所有上传的文件重命名保存。
此类的文件下载URL构造,数不胜数。