常见的 Web 安全漏洞可以分为多个类型,根据 OWASP Top 10 和实际渗透测试经验,以下是常见的 Web 漏洞分类及其描述:
---
1. SQL 注入(SQL Injection)
描述:通过操纵 SQL 查询,攻击者可以窃取、篡改、删除数据,甚至执行数据库命令。
示例:SELECT * FROM users WHERE username = 'input';
危害:绕过认证、数据泄露、破坏数据库。
---
2. 跨站脚本(XSS - Cross-Site Scripting)
描述:攻击者将恶意脚本注入到目标网站,诱导用户执行。
分类:
反射型:攻击代码随请求传递并立即执行。
存储型:攻击代码存储在服务器端并反复执行。
DOM 型:通过操作页面的 DOM 执行恶意代码。
危害:用户会话劫持、数据窃取、冒充用户行为。
---
3. 跨站请求伪造(CSRF - Cross-Site Request Forgery)
描述:攻击者诱导用户执行未授权的操作(如转账、修改密码)。
示例:用户点击恶意链接后触发未授权的账户操作。
危害:修改数据、进行敏感操作。
---
4. 文件上传漏洞
描述:允许上传未经验证的文件,攻击者可以上传恶意文件(如 Webshell)。
危害:
执行任意代码,获取服务器权限。
攻击服务器或其他用户。
---
5. 文件包含漏洞
描述:通过动态加载文件的功能,攻击者可加载任意文件。
分类:
本地文件包含(LFI):加载服务器上的文件。
远程文件包含(RFI):加载远程 URL 的恶意文件。
危害:文件泄露、任意代码执行。
---
6. 命令注入(Command Injection)
描述:攻击者通过输入构造恶意命令,执行系统级操作。
示例:os.system("ping " + input)
危害:执行恶意命令、破坏系统、窃取敏感数据。
---
7. 不安全的反序列化
描述:服务器在处理不受信任的序列化数据时,可能触发恶意代码执行。
危害:远程代码执行、权限提升、数据篡改。
---
8. 安全配置错误
描述:服务器或应用配置不当,如:
开启调试模式。
暴露敏感文件(如 .env)。
使用默认密码。
危害:信息泄露、系统被入侵。
---
9. 暴力破解(Brute Force)
描述:攻击者通过大量尝试,猜测用户的密码或 API 密钥。
危害:用户账户被盗、系统被滥用。
---
10. 会话管理漏洞
描述:会话标识(Session ID)暴露或管理不当。
危害:会话劫持、用户冒充。
---
11. API 漏洞
描述:API 开发中常见的安全问题:
缺少认证或授权。
过度暴露敏感数据。
使用弱加密。
危害:数据泄露、API 被滥用。
---
12. 敏感信息泄露
描述:应用泄露敏感信息,如:
源代码。
日志文件。
环境配置文件(.env)。
危害:攻击者可以直接利用这些信息进行后续攻击。
---
13. HTTP 不安全(缺少 HTTPS)
描述:数据传输未加密,可能被窃听或篡改。
危害:敏感数据泄露、中间人攻击。
---
14. 权限和访问控制漏洞
描述:系统未正确验证用户权限,导致越权访问。
危害:普通用户访问管理员功能,或查看他人敏感数据。
---
15. 第三方依赖漏洞
描述:使用了不安全的第三方库或框架。
危害:攻击者可通过已知漏洞进行攻击。
---
---
1. SQL 注入(SQL Injection)
描述:通过操纵 SQL 查询,攻击者可以窃取、篡改、删除数据,甚至执行数据库命令。
示例:SELECT * FROM users WHERE username = 'input';
危害:绕过认证、数据泄露、破坏数据库。
---
2. 跨站脚本(XSS - Cross-Site Scripting)
描述:攻击者将恶意脚本注入到目标网站,诱导用户执行。
分类:
反射型:攻击代码随请求传递并立即执行。
存储型:攻击代码存储在服务器端并反复执行。
DOM 型:通过操作页面的 DOM 执行恶意代码。
危害:用户会话劫持、数据窃取、冒充用户行为。
---
3. 跨站请求伪造(CSRF - Cross-Site Request Forgery)
描述:攻击者诱导用户执行未授权的操作(如转账、修改密码)。
示例:用户点击恶意链接后触发未授权的账户操作。
危害:修改数据、进行敏感操作。
---
4. 文件上传漏洞
描述:允许上传未经验证的文件,攻击者可以上传恶意文件(如 Webshell)。
危害:
执行任意代码,获取服务器权限。
攻击服务器或其他用户。
---
5. 文件包含漏洞
描述:通过动态加载文件的功能,攻击者可加载任意文件。
分类:
本地文件包含(LFI):加载服务器上的文件。
远程文件包含(RFI):加载远程 URL 的恶意文件。
危害:文件泄露、任意代码执行。
---
6. 命令注入(Command Injection)
描述:攻击者通过输入构造恶意命令,执行系统级操作。
示例:os.system("ping " + input)
危害:执行恶意命令、破坏系统、窃取敏感数据。
---
7. 不安全的反序列化
描述:服务器在处理不受信任的序列化数据时,可能触发恶意代码执行。
危害:远程代码执行、权限提升、数据篡改。
---
8. 安全配置错误
描述:服务器或应用配置不当,如:
开启调试模式。
暴露敏感文件(如 .env)。
使用默认密码。
危害:信息泄露、系统被入侵。
---
9. 暴力破解(Brute Force)
描述:攻击者通过大量尝试,猜测用户的密码或 API 密钥。
危害:用户账户被盗、系统被滥用。
---
10. 会话管理漏洞
描述:会话标识(Session ID)暴露或管理不当。
危害:会话劫持、用户冒充。
---
11. API 漏洞
描述:API 开发中常见的安全问题:
缺少认证或授权。
过度暴露敏感数据。
使用弱加密。
危害:数据泄露、API 被滥用。
---
12. 敏感信息泄露
描述:应用泄露敏感信息,如:
源代码。
日志文件。
环境配置文件(.env)。
危害:攻击者可以直接利用这些信息进行后续攻击。
---
13. HTTP 不安全(缺少 HTTPS)
描述:数据传输未加密,可能被窃听或篡改。
危害:敏感数据泄露、中间人攻击。
---
14. 权限和访问控制漏洞
描述:系统未正确验证用户权限,导致越权访问。
危害:普通用户访问管理员功能,或查看他人敏感数据。
---
15. 第三方依赖漏洞
描述:使用了不安全的第三方库或框架。
危害:攻击者可通过已知漏洞进行攻击。
---