当我们点击一个下载链接的时候,会向后台提交一个下载请求,这个请求会包含一个下载的文件名称。后台收到这个请求会执行代码,完成下载。
文件下载漏洞利用原理如果,攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(比如…/…/…/etc/passwd),则很有可能会直接将该指定的文件下载下来。 从而导致后台敏感信息(密码文件、源代码等)被下载。
实验演示
进入实验界面,显示点击球员名字即可下载,我们随便点击一个球员下载头像。
抓包分析
我们用burpsuiet抓包分析,参数filename带入要下载的文件名 kb.png
我们可以通过伪造文件名(添加 …/ ,还可以下载其他路径下的文件)
利用漏洞下载其他路径的文件
在下载头像的源代码的同一路径下新建一个txt文件
修改filename后面的参数为filename=…/test.txt,点击下载,发现可以成功下载文件。同样的,我们使用多个…/,可以回到其他路径下载任意文件