常见 Web 漏洞渗透及防护方法
弱口令漏洞
漏洞描述
目标网站管理入口(或数据库等组件的外部连接)使用了容易被猜测的简单字符口令、或者是默认系统账号口令。
渗透测试
如果不存在验证码,则直接使用相对应的弱口令字典使用 Burp Suite 进行爆破。 如果存在验证码,则看验证码是否存在绕过、以及看验证码是否容易识别。
风险评级
高风险
安全建议
- 默认口令以及修改口令都应保证复杂度,比如:大小写字母与数字或特殊字符的组合,口令长度不小于 8 位等。
- 定期检查和更换网站管理口令。
- 实施多因素认证(MFA)以增强安全性。
文件下载(目录浏览)漏洞
漏洞描述
一些网站由于业务需求,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意的文件,可以是源代码文件、敏感文件等。
渗透测试
- 查找可能存在文件包含的漏洞点,比如 js、css 等页面代码路径。
- 看看有没有文件上传访问的功能。
- 采用
../来测试能否跨目录访问文件。
风险评级
高风险
安全建议
- 采用白名单机制限制服务器目录的访问,以及可以访问的文件类型(小心被绕过)。
- 过滤
./等特殊字符。 - 采用文件流的访问返回上传文件(如用户头像),不要通过真实的网站路径。
- 禁用目录列表功能,确保 Web 服务器配置正确。
任意文件上传漏洞
漏洞描述
目标网站允许用户向网站直接上传文件,但未对所上传文件的类型和内容进行严格的过滤。
渗透测试
- 收集网站信息,判断使用的语言(PHP, ASP, JSP)。
- 尝试绕过过滤规则,例如利用
listings false等技巧。
安全建议
- 对上传文件做有效文件类型判断,采用白名单控制的方法,开放只允许上传的文件格式。
- 文件类型判断,应对上传文件的后缀、文件头、图片类的预览图等做检测来判断文件类型。
- 注意重命名(Md5 加密)上传文件的文件名,避免攻击者利用 WEB 服务的缺陷构造畸形文件名实现攻击目的。
- 禁止上传目录有执行权限。
- 使用随机数改写文件名和文件路径,使得用户不能轻易访问自己上传的文件。
- 在服务器端验证文件内容,而不仅仅是依赖前端校验。
命令注入漏洞
漏洞描述
目标网站未对用户输入的字符进行特殊字符过滤或合法性校验,允许用户输入特殊语句,导致各种调用系统命令的 web 应用,会被攻击者通过命令拼接、绕过黑名单等方式,在服务端运行恶意的系统命令。
渗透测试
- 寻找参数传递点,尝试注入特殊字符如
;,|,&,$()等。 - 观察响应时间变化或错误信息泄露。
风险评级
高风险
安全建议
- 拒绝使用拼接语句的方式进行参数传递。
- 尽量使用白名单的方式(首选方式)。
- 过滤危险方法、特殊字符,如:
|,&, , , 等。


