网站漏洞挖掘与渗透测试常见思路指南
前言
本文主要分享网站各模块的常见漏洞挖掘思路,涵盖登录、搜索、文件上传、权限控制等核心场景。通过理解漏洞原理及利用方式,有助于安全人员快速上手渗透测试,同时为开发人员提供修复参考。
本文详细梳理了网站漏洞挖掘的核心思路,涵盖登录框、搜索框、文件上传、Excel 处理及权限控制等关键模块。内容包括 SQL 注入、XSS、越权、任意密码重置、XXE 等常见漏洞的原理分析与利用示例,并针对每种风险提供了具体的修复建议与防御措施。旨在帮助安全人员建立系统的渗透测试框架,同时为开发者提供加固参考。

本文主要分享网站各模块的常见漏洞挖掘思路,涵盖登录、搜索、文件上传、权限控制等核心场景。通过理解漏洞原理及利用方式,有助于安全人员快速上手渗透测试,同时为开发人员提供修复参考。
在用户名输入框中输入 ' or 1=1#,密码随意。后端查询语句可能变为:
SELECT name, passwd FROM users WHERE username='' OR 1=1# AND password='???';
SQL 语法中 # 是注释符,后续语句被忽略。若存在 SQL 注入,可直接绕过密码验证登录。
修复建议:使用预编译语句(Prepared Statements)或参数化查询。
网站接受用户输入的链接并跳转至攻击者控制的网站,可能导致用户进入钓鱼页面。例如:
GET /redirect?url=http://evil.com HTTP/1.1
修复建议:对重定向地址进行白名单校验,避免直接拼接用户输入。
攻击者在无登录权限情况下,直接访问后台管理页面或敏感接口。通常由于中间件配置错误或权限校验缺失导致。 修复建议:所有敏感路径必须强制校验 Session 或 Token。
部分系统逻辑缺陷在于依赖服务器端返回的参数作为最终凭证。例如服务器返回 login_success=true,客户端据此判断登录成功。
利用思路:使用 BurpSuite 拦截响应包,将 false 修改为 true。
修复建议:关键状态应存储在服务器端 Session 中,而非仅依赖前端传递的参数。
Web 中间件配置错误导致可访问敏感目录(如 /../etc/passwd)。程序未过滤 .. 等跳转符。
修复建议:统一入口限制,禁止访问非业务所需目录。
分为反射型、存储型、DOM 型。攻击者注入恶意脚本窃取 Cookie 或进行钓鱼。 修复建议:对用户输入进行 HTML 实体编码,设置 HttpOnly Cookie。
登录时用户名、密码未加密传输(HTTP 而非 HTTPS),易被 ARP 欺骗或嗅探截获。 修复建议:全站启用 HTTPS,敏感字段二次加密。
验证码逻辑缺陷,允许随意填写手机号或验证码爆破。 修复建议:对接正规短信服务商,增加图形验证码,限制注册频率。
找回密码响应包中包含验证码明文。 修复建议:响应包中移除敏感信息。
重置密码时仅验证手机号和验证码,未校验该手机号是否属于目标账号。 修复建议:服务端需验证'手机号 - 用户 ID'绑定关系。
客户端收到 false 时阻止流程,但服务端未二次校验。
修复建议:关键步骤由服务端独立判定,不依赖前端返回值。
找回密码流程多步中,某一步骤未校验前序结果。 修复建议:每一步骤均记录状态,提交时全量校验。
重置链接中的 Token 可重复使用或未绑定用户。 修复建议:Token 一次性有效,且绑定用户 ID。
验证码位数少、无时效限制。 修复建议:增加复杂度,设置有效期,限制尝试次数。
前端数据传入后台未做严格过滤,拼接到 SQL 语句执行。
SELECT * FROM articles WHERE title LIKE '%search_keyword%';
修复建议:使用 ORM 框架或预编译。
搜索结果直接展示用户输入内容。 修复建议:输出时转义特殊字符。
常见风险包括:
接口未校验文件路径,可读取服务器任意文件。
允许上传 .php, .jsp 等可执行后缀。
修复建议:限制文件类型白名单,重命名文件,禁止执行权限。
解析 XML 时未禁用外部实体,导致内网探测或文件读取。 修复建议:关闭 XML 解析器的 DTD 支持。
富文本编辑器(如 FCKeditor, UEditor)可能存在历史漏洞。
编辑器允许上传图片,可能被替换为 Webshell。 修复建议:升级编辑器版本,限制上传目录执行权限。
上传 .php 图片马,配合包含漏洞执行代码。
上传 SVG 或 GIF 图片注入脚本。
上传他人头像。 修复建议:后端校验文件头(Magic Number),重命名存储,禁止脚本执行。
ID 遍历访问其他用户文章。
URL 参数直接拼接查询条件。 修复建议:后端校验资源归属,参数化查询。
通过上述思路的系统性排查,可有效发现并修复大部分常见 Web 安全隐患。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online