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:身份認證失?。ㄩT禁卡被復制)—— 黑客冒充合法用戶黑客通過弱口令、會話劫持、憑證泄露等方式,拿到合法用戶的登錄憑證,相當于復制了門禁卡,大搖大擺進入系統。某政府網站的后臺登錄口,允許用戶名admin無限次嘗試密碼,黑客用字典攻擊,1 小時就破解了密碼admin123,直接把首頁改成了惡搞頁面,第二天才被發現。
- 測弱口令:用 BurpSuite 的 Intruder 模塊,加載常見密碼字典(比如admin、123456、password),暴力破解登錄口。
- 查會話安全:登錄后修改 Cookie 里的JSESSIONID為別人的會話 ID,看能不能直接登錄(會話劫持漏洞)。
- 強制強密碼策略:密碼必須 8 位以上,包含字母、數字、符號,每 3 個月強制修改,禁止使用歷史密碼。
- 會話管理要嚴格:用戶 15 分鐘不操作就自動注銷,會話 ID 用 32 位隨機字符串(別用 1、2、3 這種順序號),存在 HttpOnly 的 Cookie 里防 XSS 竊取。
8. A08:軟件和數據完整性失?。爝f被拆封篡改)—— 中途修改包裹內容黑客在數據傳輸或存儲過程中篡改數據,比如把訂單金額從 1000 元改成 1 元,或者在安裝包植入木馬,相當于快遞在運輸途中被拆封換貨。某電商的支付接口沒做數據簽名,黑客抓包后修改訂單金額,把 1000 元的手機訂單改成 1 元,成功下單 10 臺,公司直接損失 9990 元。
- 改包測試:用 BurpSuite 攔截請求,把價格、數量等字段改掉,看服務器是否接受(比如把price=100改成price=1)。
- 查文件哈希:下載軟件后對比官方 MD5 值,如果對不上,說明文件被篡改(可能有木馬)。
- 重要數據加簽名校驗:傳輸訂單、支付信息時,用 HMAC 算法生成簽名,服務器收到后驗證簽名是否正確,防止數據被篡改。
- 文件上傳驗哈希:用戶上傳文件后,計算 SHA-256 哈希值存起來,讀取時對比哈希,確保文件沒被修改。
9. A09:安全日志和監控失?。]裝監控的家)—— 小偷來了不知道系統沒記錄攻擊日志,或者監控報警不及時,相當于家里沒裝監控,小偷來了偷完東西走了,你都不知道啥時候被偷的,也查不到是誰偷的。某金融機構的服務器被植入后門,黑客每月偷一次數據,但系統沒記錄登錄日志,直到三個月后流量異常才被發現,此時 50GB 客戶數據已泄露,根本追不到攻擊源頭。
- 查日志是否完整:看服務器有沒有記錄登錄失敗、異常 IP 訪問、敏感操作(如刪除文件、修改權限)。
- 測報警機制:故意輸錯密碼 10 次,看會不會收到郵件 / 短信報警(很多系統根本沒開報警功能)。
- 記錄所有關鍵操作:登錄失敗、權限變更、敏感文件訪問等必須記錄,日志存到獨立服務器(防止被攻擊者刪除)。
- 實時監控 + 自動報警:用 ELK 棧實時分析日志,設置報警規則(如 1 分鐘內 50 次登錄失?。l現異常立即通知管理員。
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 編輯過