考点精讲
- 一句话木马如 PHP 的 ($_POST['x']);?>,上传后用菜刀/蚁剑等工具连接执行命令。利用流程:找到上传点 → 上传木马 → 定位文件路径 → 连接木马 getshell。防护措施:白名单校验扩展名、限制文件类型、重命名文件、限制上传目录执行权限。
记忆技巧
eval 一句话木马 + 蚁剑连接
上传漏洞 = 校验不严 + 目录可执行
常见误区
- 以为上传漏洞只能传图片——后缀可伪装为脚本
- 忽略上传后文件路径的寻找
- 以为前端 JS 校验能防住——可直接绕过
真题思路
- 【示例】 下列关于文件上传漏洞的说法,错误的是()
一句话木马常利用 eval 执行传入的代码 前端 JS 校验可以被绕过 只要限制上传目录不可执行,就一定不会 getshell 上传后还需确定文件访问路径才能连接木马
答案:C
解析:eval 一句话木马、前端校验可绕过、上传后需定位路径连接木马,A、B、D 正确。限制执行权限是重要防护手段之一,但需与白名单、重命名等多重措施配合,单独一条不能保证「一定不会 getshell」,C 表述过于绝对,故选 C。
常见问题
Q:一句话木马的原理是什么?
A:一句话木马是一段简短脚本,如 PHP 的 <?php @eval($_POST['x']);?>,通过 eval 执行 POST 传入的代码,攻击者用菜刀/蚁剑等工具连接后即可远程执行命令。
Q:上传木马后如何 getshell?
A:找到上传点 → 上传木马文件 → 确定木马文件在服务器上的访问路径 → 用连接工具连接木马,即可执行系统命令获取服务器权限(getshell)。
Q:如何防护文件上传漏洞?
A:白名单校验扩展名、限制上传文件类型、重命名上传文件、限制上传目录的执行权限等。
Q:前端校验为什么防不住?
A:前端 JS 校验只在浏览器本地执行,攻击者可直接抓包绕过或修改请求;只有把校验规则放到服务端才真正有效。
教材出处:第4章 Web 漏洞 文件上传漏洞与一句话木马