Web安全原理(5)——文件上传漏洞
1.文件上传漏洞简介
(1)如果Web应用不对上传的文件进行严格验证和过滤,Web应用就容易受到文件中的恶意脚本攻击,进而攻击者便可以通过脚本控制整个网站,乃至服务器。
(2)攻击者上传的恶意脚本文件,又被称为WebShell,WebShell脚本也是一种网页后门。WebShell脚本能够查看服务器目录、服务器中的文件,甚至执行系统命令。
2.JS检测绕过攻击
(1)简介:JS检测绕过漏洞主要出现在用户上传文件的场景中,此时页面提示需按照文件后缀要求上传文件,上传文件的数据包还未发往服务器中,只是在客户端浏览器使用JS对数据包内容进行检测。
(2)攻击方式:
- 使用浏览器插件来删除检测文件后缀的JS代码。
- 将上传文件后缀改成符合要求的,先绕过JS检测,然后通过抓包,将包体内文件后缀再修改回来即可。
(3)实战演示:
演示页面需上传后缀为.jpg的图片
我们先将图片后缀修改为.jpg,然后抓包再修改回.gif
最后显示以.gif格式上传成功。
当然上述攻击在服务器端没有对上传文件检测的情况下,最终才能上传成功。
3.文件后缀绕过攻击
(1)环境:客户端没有JS代码检测上传文件格式,但服务器端有php代码对传入文件后缀进行检测,此时.php后缀文件无法被接收。
服务器端限制代码:
if (strtolower($ext) == "php") {
exit("不允许的后缀名");
}
(2)绕过方式: