OWASP 十大漏洞。这玩意儿就像咱们护网工程师的 "九阳真经",不管是做渗透测试还是搞安全防护,这十个漏洞都是绕不开的核心。我会用菜市场都能听懂的大白话,搭配真实的攻击案例,让你一看就懂黑客的十大套路,以及咱们该怎么见招拆招。一、先搞明白:OWASP 是啥?为啥它的漏洞列表能封神?
OWASP(开放式 Web 应用安全项目)是全球最牛的公益安全组织,专门盯着互联网上那些最常见、最危险的漏洞。它每年都会更新的「十大漏洞」,相当于给全网发布了一份 "黑客常用套路通缉令",把黑客最爱用、危害最大的十种攻击手法列得明明白白,堪称护网人的 "防坑指南"。
- 黑客 70% 的攻击都靠这几招:不管是国家级的护网行动,还是日常的渗透测试,超过七成的攻击都是围绕这十大漏洞展开的。你把这些漏洞吃透了,相当于掌握了黑客的 "常用密码本"。
- 守住它们就能挡住大部分攻击:这十大漏洞就像网络安全的 "任督二脉",打通了就能大幅提升防御能力。举个夸张的例子:只要把这十个漏洞防住,能让 80% 的黑客攻击无功而返。
1. A01:破碎的访问控制(越权访问)—— 小区门禁形同虚设就好比小区保安不查门禁卡,不管谁来了都放进去。黑客利用网站没做好权限控制,直接改改 URL 里的用户 ID,就能看别人的信息、删数据,甚至冒充管理员。前两年某电商出了个大篓子:用户查订单的接口没做权限校验,黑客把 URL 里的user=1改成user=1001,直接看到了全平台用户的订单详情,连收货地址都没打码,10 万条数据就这么泄露了。
- 手动改参数:登录后把 URL 里的用户 ID 改成别人的(比如从1改成2),看看能不能看到对方的信息。
- 抓包改角色:用 BurpSuite 抓登录后的请求,把用户角色从普通用户改成admin,看看能不能直接进入管理员后台。
- 每个接口都设 "门卫":用户访问任何功能前,服务器必须检查权限 —— 普通用户只能看自己的数据,管理员才能删东西,别信前端返回的角色信息(黑客分分钟能改)。
- 权限校验放服务器端:别把权限控制写在前端代码里,黑客能轻松绕过,所有校验都要在服务器端做,比如用户想删数据,先查数据库确认是不是管理员。
2. A02:加密失效(数据裸奔)—— 重要文件随便扔桌上相当于把存折密码写在纸上随手丢桌上,黑客捡起来就能用。数据传输时没加密,或者存储时用弱加密,黑客抓包或拖库就能拿到明文敏感信息。某银行 APP 居然用 Base64 编码传输密码(Base64 只是编码,不是加密!),黑客用 Wireshark 抓包,直接解码拿到了用户密码,几千个账户一夜之间被盗刷。
- 看网址有没有小绿锁:访问网站时看 URL 是不是https,没加密的http相当于数据在裸奔。
- 查数据库密码存储:如果数据库里的密码是明文,或者只用 MD5 这种弱加密(比如e10adc3949ba59abbe56e057f20f883e这种短哈希),那就是高危漏洞。
- 强制 HTTPS 加密:所有数据传输必须用 HTTPS,证书用 Let's Encrypt 免费申请,别用自签名证书(浏览器会报错)。
- 密码存储要 "加盐":密码不能直接存哈希,要加随机盐值再加密(比如 BCrypt 算法),敏感数据(身份证号、银行卡号)必须用 AES 这种强加密算法。
3. A03:注入漏洞(输入框下毒)—— 在汤里撒毒药黑客在输入框里输入恶意代码,就像在餐馆的汤里撒毒药,让服务器执行非法命令。最常见的是 SQL 注入(攻击数据库)和命令注入(攻击服务器系统)。某论坛的搜索框没过滤特殊字符,黑客输入' or 1=1 --,直接绕过登录,把整个论坛的用户数据库都拖走了,管理员密码也被明文泄露。
- 手动试特殊字符:在搜索框、登录框输入'、"、;、--,如果页面报错或者返回大量数据,大概率存在注入漏洞。
- 用工具扫:SQL 注入用 SQLMap,命令注入用 AWVS,直接跑脚本就能检测。
- 只允许 "白名单" 字符:比如手机号输入框只允许数字,邮箱输入框必须包含@,别用黑名单(永远防不住漏网之鱼)。
- 写代码别拼接 SQL:用框架自带的参数化查询(比如 Java 的 PreparedStatement),别直接把用户输入拼进 SQL 语句里,比如写成select * from user where id=?,用参数传值。
4. A04:不安全的设计(天生缺陷)—— 建房子没留消防通道系统设计时就有硬伤,比如登录接口没做限流,黑客能暴力破解;没做反序列化保护,黑客能远程执行代码,相当于建房子时没留消防通道,起火了没法逃生。某物流系统的登录口没限制尝试次数,黑客写了个脚本,每秒发 1000 次登录请求,3 小时内破解了 500 个员工的弱密码,直接控制了内部系统,把货物配送信息改得乱七八糟。
- 看业务逻辑是否合理:注册时没验证码、找回密码只发短信不打电话、支付接口没签名校验,这些都是设计漏洞。
- 测接口并发能力:用 BurpSuite 同时发 100 个登录请求,看系统会不会触发限流(比如返回 "请求频繁,请稍后再试")。
- 设计时就把安全考虑进去:登录接口必须加验证码,每分钟最多允许 5 次尝试;重要操作(如改密码、转账)必须二次验证(短信 + 邮箱)。
- 画数据流图做威胁建模:开发前先画流程图,标出用户输入、数据传输、权限控制这些可能被攻击的点,提前堵上漏洞。
5. A05:安全配置错误(防盗门没关)—— 装了防盗门却没上锁服务器或应用的配置没做好,比如用默认密码、开放敏感端口、泄露敏感文件,相当于家里装了防盗门却没关门,黑客直接推门就进。某公司把 Redis 服务直接暴露在公网,还没设密码,黑客用工具连接后,直接写入恶意脚本,把服务器变成了挖矿机,CPU 跑满了一周,电费多花了好几万才发现。
- 扫端口找漏洞:用 nmap 扫 3306(MySQL)、6379(Redis)、7001(WebLogic)等端口,看是否开放且无需认证。
- 找敏感文件泄露:访问/robots.txt看有没有后台地址,/phpinfo.php看 PHP 配置,/config.php看数据库账号密码。
- 关闭不必要的服务和端口:用netstat -an查开放端口,只留必要的(比如 Web 服务开 80/443,数据库端口只允许内网访问)。
- 删掉默认配置和文件:Tomcat 的manager后台、Spring Boot 的actuator端点、默认的admin/admin账号,这些全删掉或改密码。
6. A06:脆弱的和过时的组件(用十年前的老锁)—— 锁太旧了小偷随便撬用了有漏洞的旧版本软件,比如 Struts2-045、Log4j2,这些组件的漏洞早就被黑客研究透了,直接用公开的攻击脚本就能拿下系统。某医院的系统没更新 Log4j2 组件,黑客利用 JNDI 注入漏洞,远程执行代码,把所有病历文件都加密了,开价 10 个比特币赎金,医院差点瘫痪。
- 查技术栈版本:用 WhatWeb 看网站用了什么技术(比如 WordPress 5.8),去 CNVD 查这个版本有没有已知漏洞。
- 用工具扫组件漏洞:Nessus 扫系统补丁,OWASP Dependency-Check 扫第三方库(比如 Maven 依赖的旧版 jar 包)。
- 定期更新组件和补丁:每月跟进 CVE 漏洞库,特别是 Log4j、Struts2、Spring 这些高危组件,发现漏洞 24 小时内必须打补丁。
- 每周跑漏洞扫描工具:用 OpenVAS 扫服务器,及时发现过时组件(比如 Redis 4.0.11 以下版本有未授权访问漏洞,必须升级)。
7. A07:身份认证失败(门禁卡被复制)—— 黑客冒充合法用户黑客通过弱口令、会话劫持、凭证泄露等方式,拿到合法用户的登录凭证,相当于复制了门禁卡,大摇大摆进入系统。某政府网站的后台登录口,允许用户名admin无限次尝试密码,黑客用字典攻击,1 小时就破解了密码admin123,直接把首页改成了恶搞页面,第二天才被发现。
- 测弱口令:用 BurpSuite 的 Intruder 模块,加载常见密码字典(比如admin、123456、password),暴力破解登录口。
- 查会话安全:登录后修改 Cookie 里的JSESSIONID为别人的会话 ID,看能不能直接登录(会话劫持漏洞)。
- 强制强密码策略:密码必须 8 位以上,包含字母、数字、符号,每 3 个月强制修改,禁止使用历史密码。
- 会话管理要严格:用户 15 分钟不操作就自动注销,会话 ID 用 32 位随机字符串(别用 1、2、3 这种顺序号),存在 HttpOnly 的 Cookie 里防 XSS 窃取。
8. A08:软件和数据完整性失败(快递被拆封篡改)—— 中途修改包裹内容黑客在数据传输或存储过程中篡改数据,比如把订单金额从 1000 元改成 1 元,或者在安装包植入木马,相当于快递在运输途中被拆封换货。某电商的支付接口没做数据签名,黑客抓包后修改订单金额,把 1000 元的手机订单改成 1 元,成功下单 10 台,公司直接损失 9990 元。
- 改包测试:用 BurpSuite 拦截请求,把价格、数量等字段改掉,看服务器是否接受(比如把price=100改成price=1)。
- 查文件哈希:下载软件后对比官方 MD5 值,如果对不上,说明文件被篡改(可能有木马)。
- 重要数据加签名校验:传输订单、支付信息时,用 HMAC 算法生成签名,服务器收到后验证签名是否正确,防止数据被篡改。
- 文件上传验哈希:用户上传文件后,计算 SHA-256 哈希值存起来,读取时对比哈希,确保文件没被修改。
9. A09:安全日志和监控失败(没装监控的家)—— 小偷来了不知道系统没记录攻击日志,或者监控报警不及时,相当于家里没装监控,小偷来了偷完东西走了,你都不知道啥时候被偷的,也查不到是谁偷的。某金融机构的服务器被植入后门,黑客每月偷一次数据,但系统没记录登录日志,直到三个月后流量异常才被发现,此时 50GB 客户数据已泄露,根本追不到攻击源头。
- 查日志是否完整:看服务器有没有记录登录失败、异常 IP 访问、敏感操作(如删除文件、修改权限)。
- 测报警机制:故意输错密码 10 次,看会不会收到邮件 / 短信报警(很多系统根本没开报警功能)。
- 记录所有关键操作:登录失败、权限变更、敏感文件访问等必须记录,日志存到独立服务器(防止被攻击者删除)。
- 实时监控 + 自动报警:用 ELK 栈实时分析日志,设置报警规则(如 1 分钟内 50 次登录失败),发现异常立即通知管理员。
10. A10:SSRF(服务器当中间人)—— 借刀杀人黑客让服务器帮自己访问内部系统,比如伪造服务器请求,让它去连接内网数据库、访问内部 API,相当于借服务器的 "身份" 去干坏事。某新闻网站的图片获取接口,允许输入任意 URL,黑客输入内网数据库地址http://192.168.1.100:3306,服务器傻乎乎地去连接,帮黑客拿到了内部数据。
- 测 URL 输入接口:在允许输入 URL 的地方(比如图片链接、跳转链接),输入内网 IP(如192.168.1.100),看服务器是否发起请求(用 Wireshark 抓包看)。
- 改包指向内部系统:用 BurpSuite 修改请求中的 URL,指向公司内网地址,看是否能访问。
- 白名单限制 URL:只允许访问白名单内的域名(如xxx.com、api.xxx.com),禁止访问内网 IP 和其他可疑域名。
- 服务器端严格校验:接收 URL 后,先解析域名,检查是否在允许的范围内,别直接用用户输入的 URL 发起请求。
- 第一板:工具扫描用 Nessus、AWVS 这类自动化工具,选 OWASP Top 10 扫描策略,跑一遍就能识别大部分漏洞(注意扫描速度别太快,防止把服务器搞崩)。
- 第二板:手动验证每个高危漏洞至少手动测一次:比如 SQL 注入用' or 1=1 --,XSS 用<script>alert(1)</script>,越权访问改 URL 里的用户 ID,确保工具没漏报。
- 第三板:查配置文件打开web.xml、application.properties等配置文件,看看有没有默认密码(如user=admin&password=admin)、未授权访问配置(如allow-url-pattern=/*)。
- 注入漏洞(A03):能直接偷数据、拿服务器权限,发现后必须当天修复,否则分分钟被拖库。
- 破碎的访问控制(A01):越权访问导致数据泄露,危害仅次于注入,特别是金融、医疗系统,用户数据泄露后果严重。
- 身份认证失败(A07):弱口令、会话劫持是黑客最爱的突破口,先把登录口加固好,能挡住一半的攻击。
- 安全配置错误(A05):Redis 未授权、Tomcat 弱口令这些漏洞,黑客拿来就用,必须优先排查服务器的端口和敏感文件。
- 所有用户输入的地方:输入框、搜索框、上传接口,这些地方最容易藏注入、XSS、SSRF 漏洞,测漏洞先盯着这些位置。
- 登录口和后台地址:70% 的攻击从登录口突破,弱口令、验证码绕过、会话劫持是必测项,后台地址别用/admin这种默认路径(黑客都知道)。
- 旧版本组件:Log4j、Struts2、WebLogic 这些老组件,只要没打补丁,网上随便搜就能找到攻击脚本,护网时先查这些组件的版本。
- 不信任任何用户输入:用户输入的内容,不管看起来多正常,都可能是恶意的,必须过滤或转义(比如把<转成<)。
- 最小权限原则:普通用户别给管理员权限,数据库用户用专用账号(别用root),能读数据就别给写权限,减少攻击面。
- 漏洞必须闭环管理:发现漏洞后,记录漏洞详情→通知开发修复→复测是否修复→更新日志,别以为报了漏洞就完事,必须跟进到彻底修复。
OWASP 十大漏洞,说白了就是 Web 安全中最常见的十个「基础关卡」:
- 对黑客来说:这是他们的「常用工具包」,每个漏洞都有成熟的攻击脚本和利用方法。
- 对咱们来说:这是护网的「必守关卡」,把每个漏洞的原理、检测方法、防御措施吃透,就能构建起基础的安全防护体系。
刚入行记不住没关系,先抓住前三高漏洞:注入、访问控制、身份认证,这三个占了实战攻击的 60% 以上。平时多在 DVWA、BWAPP 这些靶机上练习,把每个漏洞的攻击和防御都实操一遍,慢慢就能形成条件反射 —— 看到输入框就想测注入,看到登录口就想测弱口令。最后送大家一句话:护网没有捷径,扎实的基础比任何工具都重要。把十大漏洞研究透,再复杂的攻击也只是这些漏洞的变种而已。加油练,下一个能在护网行动中拿满分的,就是坚持把基础打牢的你!
阅读原文:https://mp.weixin.qq.com/s/kAIRIt8T72zEpKO678tsiw
该文章在 2025/4/19 10:04:14 编辑过