本系列侧重方法论,各工具只是实现目标的载体。
命令与工具只做简单介绍,其使用另见《安全工具录》。
靶场参考:upload-labs,pikachu。

文件操作,包含以下四个方面:
文件被解析,则是文件包含漏洞。
显示源代码,则是文件读取漏洞。
提示文件下载,则是文件下载漏洞。

文件上传漏洞,指程序对文件的上传未作全面限制,导致用户可以上传一些超越用户权限的文件。可以是木马,shell 脚本,病毒等。
上传文件和文件执行是两个东西。
文件上传漏洞查找及判断:
上传参数名解析:
漏洞分类:
安全修复方案:
文件上传常见检测:
常见检测绕过:
WAF 常见绕过方法:
以下是一些 WAF 绕过的例子:
数据溢出,添加垃圾数据以致防火墙数据溢出:

符号变异,破坏数据包原本符号对:

符号变异,破坏数据包原本符号对:

符号变异,文件名混淆:

符号变异,文件名混淆:

数据截断,文件名换行。

重复数据,传递多个同名数据:

重复数据,将一个 HTTP 头重复写入文件名:

重复数据,将一个 HTTP 头重复写入文件名:


文件包含允许程序在执行过程中动态引入其他文件的内容,可提高代码的可维护性、可复用性和组织性。
文件包含漏洞,如果不正确处理文件包含,攻击者可能会利用它来包含恶意文件并执行恶意代码。
文件包含漏洞成因:
分类:
参考资料:

文件下载漏洞允许攻击者下载未经授权的文件。
凡是存在文件下载的地方都可能存在文件下载漏洞。
敏感文件下载:

文件读取漏洞允许攻击者访问或读取未经授权的文件或数据。
参考资料:
半世浮萍随逝水,一宵冷雨葬名花。
——《山花子》(清)纳兰性德