OWASP Top 10 2021 中文簡介

A01:2021 – 失效的訪問控制 概述

從第五位上升,94% 的應(yīng)用程序都經(jīng)過了某種形式的訪問控制損壞測(cè)試。值得注意的CWE包括CWE-200:將敏感信息暴露給未經(jīng)授權(quán)的參與者桑逝、CWE-201:通過發(fā)送的數(shù)據(jù)暴露敏感信息CWE-352:跨站點(diǎn)請(qǐng)求偽造

失效的訪問控制 - 描述

訪問控制強(qiáng)制執(zhí)行策略寡喝,使用戶不能在其預(yù)期權(quán)限之外采取行動(dòng)。故障通常會(huì)導(dǎo)致未經(jīng)授權(quán)的信息泄露赊颠、修改或破壞所有數(shù)據(jù)或執(zhí)行超出用戶限制的業(yè)務(wù)功能顶猜。常見的訪問控制漏洞包括:

  • 通過修改 URL扼仲、內(nèi)部應(yīng)用程序狀態(tài)或 HTML 頁面驰后,或僅使用自定義 API 攻擊工具來繞過訪問控制檢查郑原。

  • 允許將主鍵更改為其他用戶的記錄,允許查看或編輯其他人的帳戶酸役。

  • 特權(quán)提升涣澡。在未登錄的情況下充當(dāng)用戶或以用戶身份登錄時(shí)充當(dāng)管理員。

  • 元數(shù)據(jù)操作抗愁,例如重放或篡改 JSON Web 令牌 (JWT) 訪問控制令牌蜘腌,或用于提升權(quán)限或?yàn)E用 JWT 失效的 cookie 或隱藏字段。

  • CORS 錯(cuò)誤配置允許未經(jīng)授權(quán)的 API 訪問倘潜。

  • 強(qiáng)制以未經(jīng)身份驗(yàn)證的用戶身份瀏覽經(jīng)過身份驗(yàn)證的頁面或以標(biāo)準(zhǔn)用戶身份瀏覽特權(quán)頁面。訪問 API 時(shí)缺少對(duì) POST养泡、PUT 和 DELETE 的訪問控制。

失效的訪問控制 - 如何預(yù)防

訪問控制僅在受信任的服務(wù)器端代碼或無服務(wù)器 API 中有效肩榕,攻擊者無法修改訪問控制檢查或元數(shù)據(jù)。

  • 除公共資源外乔妈,默認(rèn)拒絕波材。

  • 實(shí)施一次訪問控制機(jī)制并在整個(gè)應(yīng)用程序中重復(fù)使用它們揣非,包括最大限度地減少 CORS 的使用。

  • 模型訪問控制應(yīng)該強(qiáng)制記錄所有權(quán)搞监,而不是接受用戶可以創(chuàng)建镰矿、讀取琐驴、更新或刪除任何記錄。

  • 獨(dú)特的應(yīng)用程序業(yè)務(wù)限制要求應(yīng)由領(lǐng)域模型強(qiáng)制執(zhí)行。

  • 禁用 Web 服務(wù)器目錄列表并確保文件元數(shù)據(jù)(例如 .git)和備份文件不在 Web 根目錄中绝淡。

  • 記錄訪問控制失敗宙刘,在適當(dāng)時(shí)提醒管理員(例如,重復(fù)失斃谓汀)布近。

  • 速率限制 API 和控制器訪問,以最大限度地減少自動(dòng)攻擊工具的危害涩禀。

  • 注銷后鲸匿,JWT 令牌應(yīng)在服務(wù)器上失效。

失效的訪問控制 - 攻擊場景示例

場景 #1:應(yīng)用程序在訪問帳戶信息的 SQL 調(diào)用中使用未經(jīng)驗(yàn)證的數(shù)據(jù):

pstmt.setString(1, request.getParameter("acct"));

結(jié)果集結(jié)果 = pstmt.executeQuery();

攻擊者只需修改瀏覽器的“acct”參數(shù)即可發(fā)送他們想要的任何帳號(hào)纺讲。如果沒有正確驗(yàn)證,攻擊者可以訪問任何用戶的帳戶档礁。

https://example.com/app/accountInfo?acct=notmyacct

場景#2:攻擊者只是強(qiáng)制瀏覽到目標(biāo) URL。訪問管理頁面需要管理員權(quán)限。

https://example.com/app/getappInfo

https://example.com/app/admin_getappInfo

如果未經(jīng)身份驗(yàn)證的用戶可以訪問任一頁面律罢,則這是一個(gè)缺陷趋翻。如果非管理員可以訪問管理頁面,這是一個(gè)缺陷菩掏。

A02:2021 – 加密失敗 概述

上移一個(gè)位置到#2海铆,以前稱為敏感數(shù)據(jù)暴露,這更像是一個(gè)廣泛的癥狀而不是根本原因,重點(diǎn)是與密碼學(xué)相關(guān)的失斉踉稀(或缺乏密碼學(xué))。這往往會(huì)導(dǎo)致敏感數(shù)據(jù)的暴露。值得注意的CWE包括CWE-259:使用硬編碼密碼CWE-327:損壞或風(fēng)險(xiǎn)的加密算法CWE-331 熵不足

加密失敗 - 描述

首先是確定傳輸中和靜止數(shù)據(jù)的保護(hù)需求。例如芜果,密碼邢羔、信用卡號(hào)绣硝、健康記錄刹衫、個(gè)人信息和商業(yè)秘密需要額外保護(hù)叽躯,主要是如果該數(shù)據(jù)屬于隱私法(例如歐盟的通用數(shù)據(jù)保護(hù)條例 (GDPR))或法規(guī)(例如金融數(shù)據(jù)保護(hù))例如 PCI 數(shù)據(jù)安全標(biāo)準(zhǔn) (PCI DSS)葛菇。對(duì)于所有此類數(shù)據(jù):

  • 是否有任何數(shù)據(jù)以明文形式傳輸慎宾?這涉及 HTTP娇昙、SMTP 和 FTP 等協(xié)議召衔。外部互聯(lián)網(wǎng)流量是危險(xiǎn)的宣肚。驗(yàn)證所有內(nèi)部流量,例如窿锉,負(fù)載平衡器摆霉、Web 服務(wù)器或后端系統(tǒng)之間的流量奔坟。

  • 默認(rèn)情況下或在較舊的代碼中是否使用任何舊的或弱的加密算法?

  • 是否正在使用默認(rèn)加密密鑰蛀蜜、生成或重復(fù)使用弱加密密鑰刻两,或者是否缺少適當(dāng)?shù)拿荑€管理或輪換磅摹?

  • 是否未強(qiáng)制執(zhí)行加密户誓,例如幕侠,是否缺少任何用戶代理(瀏覽器)安全指令或標(biāo)頭晤硕?

  • 用戶代理(例如,應(yīng)用程序皆疹、郵件客戶端)是否不驗(yàn)證收到的服務(wù)器證書是否有效占拍?

加密失敗 - 如何預(yù)防

至少執(zhí)行以下操作晃酒,并查閱參考資料:

  • 對(duì)應(yīng)用程序處理贝次、存儲(chǔ)或傳輸?shù)臄?shù)據(jù)進(jìn)行分類浊闪。根據(jù)隱私法搁宾、監(jiān)管要求或業(yè)務(wù)需求確定哪些數(shù)據(jù)是敏感的。

  • 根據(jù)分類應(yīng)用控制盖腿。

  • 不要不必要地存儲(chǔ)敏感數(shù)據(jù)翩腐。盡快丟棄它或使用符合 PCI DSS 的標(biāo)記化甚至截?cái)嗝浴N幢A舻臄?shù)據(jù)不能被竊取等龙。

  • 確保加密所有靜態(tài)敏感數(shù)據(jù)蛛砰。

  • 確保擁有最新且強(qiáng)大的標(biāo)準(zhǔn)算法泥畅、協(xié)議和密鑰;使用適當(dāng)?shù)拿荑€管理方椎。

  • 使用安全協(xié)議(例如具有完美前向保密 (PFS) 密碼的 TLS辩尊、服務(wù)器的密碼優(yōu)先級(jí)和安全參數(shù))加密所有傳輸中的數(shù)據(jù)康辑。使用 HTTP 嚴(yán)格傳輸安全 (HSTS) 等指令強(qiáng)制加密疮薇。

  • 對(duì)包含敏感數(shù)據(jù)的響應(yīng)禁用緩存按咒。

  • 使用具有工作因子(延遲因子)的強(qiáng)自適應(yīng)和加鹽散列函數(shù)存儲(chǔ)密碼励七,例如 Argon2掠抬、scrypt两波、bcrypt 或 PBKDF2腰奋。

  • 獨(dú)立驗(yàn)證配置和設(shè)置的有效性劣坊。

加密失敗 - 攻擊場景示例

場景#1:應(yīng)用程序使用自動(dòng)數(shù)據(jù)庫加密對(duì)數(shù)據(jù)庫中的信用卡號(hào)進(jìn)行加密讼稚。但是锐想,此數(shù)據(jù)在檢索時(shí)會(huì)自動(dòng)解密乍狐,從而允許 SQL 注入缺陷以明文形式檢索信用卡號(hào)。

場景#2:站點(diǎn)不使用或?qū)λ许撁鎻?qiáng)制執(zhí)行 TLS 或支持弱加密藕帜。攻擊者監(jiān)視網(wǎng)絡(luò)流量(例如洽故,在不安全的無線網(wǎng)絡(luò)中)时甚,將連接從 HTTPS 降級(jí)為 HTTP荒适,攔截請(qǐng)求并竊取用戶的會(huì)話 cookie刀诬。然后攻擊者重放這個(gè) cookie 并劫持用戶的(經(jīng)過身份驗(yàn)證的)會(huì)話陕壹,訪問或修改用戶的私人數(shù)據(jù)糠馆。除了上述之外榨惠,他們還可以更改所有傳輸?shù)臄?shù)據(jù)赠橙,例如期揪,匯款的接收者凤薛。

場景#3:密碼數(shù)據(jù)庫使用未加鹽或簡單的哈希來存儲(chǔ)每個(gè)人的密碼缤苫。文件上傳缺陷允許攻擊者檢索密碼數(shù)據(jù)庫活玲。所有未加鹽的哈希值都可以通過預(yù)先計(jì)算的哈希值彩虹表公開。由簡單或快速散列函數(shù)生成的散列可能會(huì)被 GPU 破解穗熬,即使它們被加鹽唤蔗。

A03:2021 – 注入 概述

注射向下滑動(dòng)到第三個(gè)位置妓柜。94% 的應(yīng)用程序都針對(duì)某種形式的注入進(jìn)行了測(cè)試领虹。值得注意的CWE包括 CWE-79:跨站點(diǎn)腳本CWE-89:SQL 注入CWE-73:文件名或路徑的外部控制蝠嘉。

注入 - 描述

應(yīng)用程序在以下情況下容易受到攻擊:

  • 應(yīng)用程序不會(huì)驗(yàn)證蚤告、過濾或清理用戶提供的數(shù)據(jù)杜恰。

  • 沒有上下文感知轉(zhuǎn)義的動(dòng)態(tài)查詢或非參數(shù)化調(diào)用直接在解釋器中使用心褐。

  • 在對(duì)象關(guān)系映射 (ORM) 搜索參數(shù)中使用惡意數(shù)據(jù)來提取額外的敏感記錄逗爹。

  • 直接使用或連接惡意數(shù)據(jù)掘而。SQL 或命令包含動(dòng)態(tài)查詢袍睡、命令或存儲(chǔ)過程中的結(jié)構(gòu)和惡意數(shù)據(jù)斑胜。

一些更常見的注入是 SQL伪窖、NoSQL覆山、OS 命令簇宽、對(duì)象關(guān)系映射 (ORM)魏割、LDAP 和表達(dá)式語言 (EL) 或?qū)ο髨D導(dǎo)航庫 (OGNL) 注入钞它。這個(gè)概念在所有口譯員中都是相同的遭垛。源代碼審查是檢測(cè)應(yīng)用程序是否容易受到注入攻擊的最佳方法锯仪。強(qiáng)烈建議對(duì)所有參數(shù)庶喜、標(biāo)頭久窟、URL瘸羡、cookie队他、JSON麸折、SOAP 和 XML 數(shù)據(jù)輸入進(jìn)行自動(dòng)化測(cè)試垢啼。組織可以將靜態(tài)源 (SAST) 和動(dòng)態(tài)應(yīng)用程序測(cè)試 (DAST) 工具包含到 CI/CD 管道中芭析,以在生產(chǎn)部署之前識(shí)別引入的注入缺陷馁启。

注入 - 如何預(yù)防

  • 防止注入需要將數(shù)據(jù)與命令和查詢分開惯疙。

  • 首選選項(xiàng)是使用安全的 API对碌,它完全避免使用解釋器朽们,提供參數(shù)化接口华坦,或遷移到對(duì)象關(guān)系映射工具 (ORM)。

  • 注意:即使在參數(shù)化時(shí)椿息,如果 PL/SQL 或 T-SQL 連接查詢和數(shù)據(jù)或使用 EXECUTE IMMEDIATE 或 exec() 執(zhí)行惡意數(shù)據(jù)寝优,則存儲(chǔ)過程仍然會(huì)引入 SQL 注入。

  • 使用正面或“白名單”服務(wù)器端輸入驗(yàn)證钻心。這不是一個(gè)完整的防御捷沸,因?yàn)樵S多應(yīng)用程序需要特殊字符痒给,例如文本區(qū)域或移動(dòng)應(yīng)用程序的 API苍柏。

  • 對(duì)于任何殘留的動(dòng)態(tài)查詢突颊,使用該解釋器的特定轉(zhuǎn)義語法轉(zhuǎn)義特殊字符律秃。

  • 注意:表名棒动、列名等 SQL 結(jié)構(gòu)不能轉(zhuǎn)義船惨,因此用戶提供的結(jié)構(gòu)名是危險(xiǎn)的。這是報(bào)告編寫軟件中的常見問題扛邑。

  • 在查詢中使用 LIMIT 和其他 SQL 控件以防止在 SQL 注入的情況下大量披露記錄蔬崩。

注入 - 攻擊場景示例

場景 #1:應(yīng)用程序在構(gòu)建以下易受攻擊的 SQL 調(diào)用時(shí)使用不受信任的數(shù)據(jù):

String query = "SELECT * FROM accounts WHERE custID='" + request.getParameter("id") + "'";

場景#2:類似地沥阳,應(yīng)用程序?qū)蚣艿拿つ啃湃慰赡軙?huì)導(dǎo)致查詢?nèi)匀淮嬖诼┒矗ɡ缏鋈茫琀ibernate 查詢語言 (HQL)):

Query HQLQuery = session.createQuery("FROM accounts WHERE custID='" + request.getParameter("id") + "'");

在這兩種情況下溅潜,攻擊者都會(huì)修改瀏覽器中的 'id' 參數(shù)值以發(fā)送:' 或 '1'='1伟恶。例如:

http://example.com/app/accountView?id=' 或 '1'='1

這將更改兩個(gè)查詢的含義以返回帳戶表中的所有記錄潦牛。更危險(xiǎn)的攻擊可能會(huì)修改或刪除數(shù)據(jù)巴碗,甚至調(diào)用存儲(chǔ)過程橡淆。

A04:2021 – 不安全的設(shè)計(jì) 概述

2021 年的新類別側(cè)重于與設(shè)計(jì)和架構(gòu)缺陷相關(guān)的風(fēng)險(xiǎn),并呼吁更多地使用威脅建模师倔、安全設(shè)計(jì)模式和參考架構(gòu)趋艘。值得注意的CWE包括 CWE-209:生成包含敏感信息的錯(cuò)誤消息CWE-256:未受保護(hù)的憑證存儲(chǔ)搓萧、CWE-501:信任邊界違規(guī)CWE-522:受保護(hù)的憑證不足矛绘。

不安全的設(shè)計(jì) - 描述

不安全設(shè)計(jì)是一個(gè)廣泛的類別羊精,代表許多不同的弱點(diǎn)喧锦,表現(xiàn)為“缺失或無效的控制設(shè)計(jì)”束亏。缺少不安全的設(shè)計(jì)是缺少控制的地方碍遍。例如揣炕,想象一下應(yīng)該加密敏感數(shù)據(jù)的代碼畸陡,但沒有方法丁恭。無效的不安全設(shè)計(jì)是可以實(shí)現(xiàn)威脅的地方涩惑,但域(業(yè)務(wù))邏輯驗(yàn)證不足會(huì)阻止該操作。例如痊硕,假設(shè)域邏輯應(yīng)該根據(jù)收入等級(jí)處理流行病稅收減免,但不驗(yàn)證所有輸入都已正確簽名并提供比應(yīng)授予的更重要的減免收益盒揉。

安全設(shè)計(jì)是一種文化和方法,它不斷評(píng)估威脅并確保代碼經(jīng)過穩(wěn)健設(shè)計(jì)和測(cè)試藕漱,以防止已知的攻擊方法。安全設(shè)計(jì)需要安全的開發(fā)生命周期崭闲、某種形式的安全設(shè)計(jì)模式或鋪砌道路組件庫或工具肋联,以及威脅建模。

不安全的設(shè)計(jì) - 如何預(yù)防

  • 與 AppSec 專業(yè)人員建立并使用安全的開發(fā)生命周期刁俭,以幫助評(píng)估和設(shè)計(jì)與安全和隱私相關(guān)的控制

  • 建立和使用安全設(shè)計(jì)模式庫或準(zhǔn)備使用組件的鋪好的道路

  • 將威脅建模用于關(guān)鍵身份驗(yàn)證橄仍、訪問控制、業(yè)務(wù)邏輯和關(guān)鍵流

  • 編寫單元和集成測(cè)試以驗(yàn)證所有關(guān)鍵流都能抵抗威脅模型

不安全的設(shè)計(jì) - 攻擊場景示例

場景 #1:憑證恢復(fù)工作流程可能包括“問答”侮繁,這是 NIST 800-63b虑粥、OWASP ASVS 和 OWASP Top 10 所禁止的。不能將問答作為多個(gè)人身份的證據(jù)可以知道答案鼎天,這就是為什么它們被禁止舀奶。此類代碼應(yīng)刪除并替換為更安全的設(shè)計(jì)。

場景#2:連鎖影院允許團(tuán)體預(yù)訂折扣斋射,并且在要求押金之前最多有 15 名參與者育勺。攻擊者可以對(duì)該流程進(jìn)行威脅建模,并測(cè)試他們是否可以在幾次請(qǐng)求中一次預(yù)訂 600 個(gè)座位和所有電影院罗岖,從而造成巨大的收入損失涧至。

場景 #3:零售連鎖店的電子商務(wù)網(wǎng)站沒有針對(duì)由黃牛運(yùn)行的機(jī)器人提供保護(hù),這些機(jī)器人購買高端顯卡以轉(zhuǎn)售拍賣網(wǎng)站桑包。這對(duì)視頻卡制造商和零售連鎖店主造成了可怕的宣傳南蓬,并與無法以任何價(jià)格獲得這些卡的愛好者之間產(chǎn)生了仇恨。仔細(xì)的反機(jī)器人設(shè)計(jì)和域邏輯規(guī)則哑了,例如在可用性的幾秒鐘內(nèi)進(jìn)行的購買赘方,可能會(huì)識(shí)別出不真實(shí)的購買并拒絕此類交易。

A05:2021 – 安全配置錯(cuò)誤 概述

從上一版的第 6 位開始弱左,90% 的應(yīng)用程序都經(jīng)過了某種形式的錯(cuò)誤配置測(cè)試窄陡。隨著更多轉(zhuǎn)向高度可配置的軟件,看到這一類別上升也就不足為奇了拆火。值得注意的CWE包括CWE-16 ConfigurationCWE-611 Improper Restriction of XML External Entity Reference跳夭。

安全配置錯(cuò)誤 - 描述

如果應(yīng)用程序是:

  • 在應(yīng)用程序堆棧的任何部分缺少適當(dāng)?shù)陌踩珡?qiáng)化或?qū)υ品?wù)的權(quán)限配置不正確。

  • 啟用或安裝了不必要的功能(例如们镜,不必要的端口币叹、服務(wù)、頁面模狭、帳戶或權(quán)限)颈抚。

  • 默認(rèn)帳戶及其密碼仍處于啟用狀態(tài)且未更改。

  • 錯(cuò)誤處理向用戶顯示堆棧跟蹤或其他信息過多的錯(cuò)誤消息胞皱。

  • 對(duì)于升級(jí)的系統(tǒng)邪意,最新的安全功能被禁用或未安全配置。

  • 應(yīng)用程序服務(wù)器反砌、應(yīng)用程序框架(例如,Struts萌朱、Spring宴树、ASP.NET)、庫晶疼、數(shù)據(jù)庫等中的安全設(shè)置未設(shè)置為安全值酒贬。

  • 服務(wù)器不發(fā)送安全標(biāo)頭或指令又憨,或者它們未設(shè)置為安全值。

  • 軟件已過時(shí)或易受攻擊(請(qǐng)參閱 A06:2021-易受攻擊和過時(shí)的組件)锭吨。

如果沒有協(xié)調(diào)一致的蠢莺、可重復(fù)的應(yīng)用程序安全配置過程,系統(tǒng)將面臨更高的風(fēng)險(xiǎn)零如。

安全配置錯(cuò)誤 - 如何預(yù)防

應(yīng)實(shí)施安全安裝過程躏将,包括:

  • 可重復(fù)的強(qiáng)化過程使部署另一個(gè)適當(dāng)鎖定的環(huán)境變得快速而輕松。開發(fā)考蕾、QA 和生產(chǎn)環(huán)境都應(yīng)配置相同祸憋,在每個(gè)環(huán)境中使用不同的憑據(jù)。這個(gè)過程應(yīng)該是自動(dòng)化的肖卧,以最大限度地減少設(shè)置新安全環(huán)境所需的工作蚯窥。

  • 一個(gè)沒有任何不必要的功能、組件塞帐、文檔和示例的最小平臺(tái)拦赠。刪除或不安裝未使用的功能和框架。

  • 作為補(bǔ)丁管理流程的一部分葵姥,審查和更新適用于所有安全說明荷鼠、更新和補(bǔ)丁的配置的任務(wù)(請(qǐng)參閱 A06:2021-易受攻擊和過時(shí)的組件)。查看云存儲(chǔ)權(quán)限(例如牌里,S3 存儲(chǔ)桶權(quán)限)颊咬。

  • 分段應(yīng)用程序架構(gòu)通過分段沃粗、容器化或云安全組 (ACL) 在組件或租戶之間提供有效且安全的分離犬庇。

  • 向客戶端發(fā)送安全指令,例如安全標(biāo)頭节腐。

  • 驗(yàn)證配置和設(shè)置在所有環(huán)境中的有效性的自動(dòng)化過程态辛。

安全配置錯(cuò)誤 - 攻擊場景示例

場景#1:應(yīng)用程序服務(wù)器帶有未從生產(chǎn)服務(wù)器中刪除的示例應(yīng)用程序麸澜。這些示例應(yīng)用程序具有攻擊者用來破壞服務(wù)器的已知安全漏洞。假設(shè)這些應(yīng)用程序之一是管理控制臺(tái)奏黑,并且默認(rèn)帳戶未更改炊邦。在這種情況下,攻擊者使用默認(rèn)密碼登錄并接管熟史。

場景#2:服務(wù)器上沒有禁用目錄列表馁害。攻擊者發(fā)現(xiàn)他們可以簡單地列出目錄。攻擊者找到并下載已編譯的 Java 類蹂匹,對(duì)其進(jìn)行反編譯和逆向工程以查看代碼碘菜。然后攻擊者發(fā)現(xiàn)應(yīng)用程序中存在嚴(yán)重的訪問控制缺陷。

場景#3:應(yīng)用服務(wù)器的配置允許將詳細(xì)的錯(cuò)誤消息(例如堆棧跟蹤)返回給用戶。這可能會(huì)暴露敏感信息或潛在缺陷忍啸,例如已知易受攻擊的組件版本仰坦。

場景#4:云服務(wù)提供商擁有其他 CSP 用戶對(duì) Internet 開放的默認(rèn)共享權(quán)限。這允許訪問存儲(chǔ)在云存儲(chǔ)中的敏感數(shù)據(jù)计雌。

A06:2021 – 易受攻擊和過時(shí)的組件 概述

它在行業(yè)調(diào)查中排名第二悄晃,但也有足夠的數(shù)據(jù)通過數(shù)據(jù)進(jìn)入前 10 名。易受攻擊的組件是我們難以測(cè)試和評(píng)估風(fēng)險(xiǎn)的已知問題凿滤,并且是唯一沒有任何 CVE 映射到包含的 CWE 的類別妈橄,因此使用默認(rèn)的漏洞利用/影響權(quán)重 5.0。值得注意的CWE包括CWE-1104:使用未維護(hù)的第三方組件和來自 2013 年和 2017 年前 10 名的兩個(gè) CWE鸭巴。

易受攻擊和過時(shí)的組件 - 描述

你可能很脆弱:

  • 如果您不知道您使用的所有組件的版本(客戶端和服務(wù)器端)眷细。這包括您直接使用的組件以及嵌套的依賴項(xiàng)。

  • 如果軟件易受攻擊鹃祖、不受支持或已過期溪椎。這包括操作系統(tǒng)、Web/應(yīng)用程序服務(wù)器恬口、數(shù)據(jù)庫管理系統(tǒng) (DBMS)校读、應(yīng)用程序、API 和所有組件祖能、運(yùn)行時(shí)環(huán)境和庫歉秫。

  • 如果您不定期掃描漏洞并訂閱與您使用的組件相關(guān)的安全公告。

  • 如果您沒有以基于風(fēng)險(xiǎn)的方式及時(shí)修復(fù)或升級(jí)底層平臺(tái)养铸、框架和依賴項(xiàng)雁芙。這通常發(fā)生在修補(bǔ)是變更控制下的每月或每季度任務(wù)的環(huán)境中,使組織面臨數(shù)天或數(shù)月不必要地暴露于固定漏洞的風(fēng)險(xiǎn)钞螟。

  • 如果軟件開發(fā)人員不測(cè)試更新兔甘、升級(jí)或修補(bǔ)的庫的兼容性。

  • 如果您不保護(hù)組件的配置(請(qǐng)參閱 A05:2021-安全配置錯(cuò)誤)鳞滨。

易受攻擊和過時(shí)的組件 - 如何預(yù)防

應(yīng)該有一個(gè)補(bǔ)丁管理流程來:

  • 刪除未使用的依賴項(xiàng)洞焙、不必要的功能、組件拯啦、文件和文檔澡匪。

  • 使用版本、OWASP Dependency Check褒链、retire.js 等工具持續(xù)清點(diǎn)客戶端和服務(wù)器端組件(例如框架唁情、庫)及其依賴項(xiàng)的版本。成分甫匹。使用軟件組合分析工具來自動(dòng)化該過程荠瘪。訂閱與您使用的組件相關(guān)的安全漏洞的電子郵件警報(bào)夯巷。

  • 僅通過安全鏈接從官方來源獲取組件赛惩。首選簽名包以減少包含修改后的惡意組件的機(jī)會(huì)(請(qǐng)參閱 A08:2021-軟件和數(shù)據(jù)完整性故障)哀墓。

  • 監(jiān)視未維護(hù)或未為舊版本創(chuàng)建安全補(bǔ)丁的庫和組件。如果無法打補(bǔ)丁喷兼,請(qǐng)考慮部署虛擬補(bǔ)丁來監(jiān)控篮绰、檢測(cè)或防止發(fā)現(xiàn)的問題。

每個(gè)組織都必須確保在應(yīng)用程序或產(chǎn)品組合的生命周期內(nèi)制定持續(xù)的監(jiān)控季惯、分類和應(yīng)用更新或配置更改的計(jì)劃吠各。

易受攻擊和過時(shí)的組件 - 攻擊場景示例

場景#1:組件通常以與應(yīng)用程序本身相同的權(quán)限運(yùn)行,因此任何組件中的缺陷都可能導(dǎo)致嚴(yán)重影響勉抓。此類缺陷可能是偶然的(例如贾漏,編碼錯(cuò)誤)或有意的(例如,組件中的后門)藕筋。發(fā)現(xiàn)的一些可利用組件漏洞的示例是:

  • CVE-2017-5638 是一個(gè) Struts 2 遠(yuǎn)程代碼執(zhí)行漏洞纵散,可以在服務(wù)器上執(zhí)行任意代碼,已被歸咎于重大漏洞隐圾。

  • 雖然物聯(lián)網(wǎng) (IoT) 通常很難或不可能修補(bǔ)伍掀,但修補(bǔ)它們的重要性可能很大(例如,生物醫(yī)學(xué)設(shè)備)暇藏。

有一些自動(dòng)化工具可以幫助攻擊者找到未打補(bǔ)丁或配置錯(cuò)誤的系統(tǒng)蜜笤。例如,Shodan IoT 搜索引擎可以幫助您找到仍然存在 2014 年 4 月修補(bǔ)的 Heartbleed 漏洞的設(shè)備盐碱。

A07:2021 – 認(rèn)證和授權(quán)失敗 概述

以前稱為Broken Authentication把兔,此類別從第二位下滑,現(xiàn)在包括與識(shí)別失敗相關(guān)的 CWE瓮顽。包括的值得注意的CWE包括CWE-297:不正確的證書驗(yàn)證與主機(jī)不匹配县好、CWE-287:不正確的身份驗(yàn)證CWE-384:會(huì)話固定

認(rèn)證和授權(quán)失敗 - 描述

確認(rèn)用戶的身份趣倾、身份驗(yàn)證和會(huì)話管理對(duì)于防止與身份驗(yàn)證相關(guān)的攻擊至關(guān)重要聘惦。如果應(yīng)用程序存在以下情況,則可能存在身份驗(yàn)證漏洞:

  • 允許自動(dòng)攻擊儒恋,例如撞庫善绎,其中攻擊者擁有有效用戶名和密碼的列表。

  • 允許蠻力或其他自動(dòng)攻擊诫尽。

  • 允許使用默認(rèn)密碼禀酱、弱密碼或眾所周知的密碼,例如“Password1”或“admin/admin”牧嫉。

  • 使用弱或無效的憑據(jù)恢復(fù)和忘記密碼流程剂跟,例如無法確保安全的“基于知識(shí)的答案”减途。

  • 使用純文本、加密或弱散列密碼(請(qǐng)參閱 A3:2017-敏感數(shù)據(jù)暴露)曹洽。

  • 缺少或無效的多因素身份驗(yàn)證鳍置。

  • 在 URL 中公開會(huì)話 ID(例如,URL 重寫)送淆。

  • 成功登錄后不要輪換會(huì)話 ID税产。

  • 不會(huì)正確地使會(huì)話 ID 無效。用戶會(huì)話或身份驗(yàn)證令牌(主要是單點(diǎn)登錄 (SSO) 令牌)在注銷或一段時(shí)間不活動(dòng)期間未正確失效偷崩。

認(rèn)證和授權(quán)失敗 - 如何預(yù)防

  • 在可能的情況下辟拷,實(shí)施多因素身份驗(yàn)證以防止自動(dòng)憑證填充、暴力破解和被盜憑證重用攻擊阐斜。

  • 不要使用任何默認(rèn)憑據(jù)進(jìn)行交付或部署衫冻,尤其是對(duì)于管理員用戶。

  • 實(shí)施弱密碼檢查谒出,例如針對(duì)前 10,000 個(gè)最差密碼列表測(cè)試新密碼或更改的密碼隅俘。

  • 將密碼長度、復(fù)雜性和輪換策略與 NIST 800-63b 的第 5.1.1 節(jié)中關(guān)于記憶秘密的指南或其他現(xiàn)代的到推、基于證據(jù)的密碼策略保持一致考赛。

  • 通過對(duì)所有結(jié)果使用相同的消息,確保注冊(cè)莉测、憑據(jù)恢復(fù)和 API 路徑能夠抵御帳戶枚舉攻擊颜骤。

  • 限制或增加延遲失敗的登錄嘗試。當(dāng)檢測(cè)到憑證填充捣卤、暴力破解或其他攻擊時(shí)忍抽,記錄所有故障并提醒管理員。

  • 使用服務(wù)器端董朝、安全鸠项、內(nèi)置的會(huì)話管理器,在登錄后生成新的高熵隨機(jī)會(huì)話 ID子姜。會(huì)話 ID 不應(yīng)在 URL 中祟绊,安全存儲(chǔ),并在注銷哥捕、空閑和絕對(duì)超時(shí)后失效牧抽。

認(rèn)證和授權(quán)失敗 - 攻擊場景示例

場景#1:憑證填充(使用已知密碼列表)是一種常見的攻擊。假設(shè)應(yīng)用程序沒有實(shí)施自動(dòng)化威脅或憑證填充保護(hù)遥赚。在這種情況下扬舒,應(yīng)用程序可以用作密碼預(yù)言機(jī)來確定憑證是否有效。

場景#2:大多數(shù)身份驗(yàn)證攻擊是由于繼續(xù)使用密碼作為唯一因素而發(fā)生的凫佛。一經(jīng)考慮讲坎,最佳實(shí)踐孕惜、密碼輪換和復(fù)雜性要求會(huì)鼓勵(lì)用戶使用和重復(fù)使用弱密碼。建議組織按照 NIST 800-63 停止這些做法并使用多因素身份驗(yàn)證晨炕。

場景 #3:應(yīng)用程序會(huì)話超時(shí)設(shè)置不正確衫画。用戶使用公共計(jì)算機(jī)訪問應(yīng)用程序。用戶沒有選擇“注銷”府瞄,而是簡單地關(guān)閉瀏覽器選項(xiàng)卡并走開碧磅。攻擊者在一個(gè)小時(shí)后使用同一個(gè)瀏覽器,而用戶仍然通過身份驗(yàn)證遵馆。

A08:2021 – 軟件和數(shù)據(jù)完整性故障 概述

2021 年的新類別側(cè)重于在不驗(yàn)證完整性的情況下做出與軟件更新、關(guān)鍵數(shù)據(jù)和 CI/CD 管道相關(guān)的假設(shè)丰榴。來自 CVE/CVSS 數(shù)據(jù)的最高加權(quán)影響之一货邓。著名的CWE包括CWE-502:不可信數(shù)據(jù)的反序列化CWE-829:包含不受信任的控制領(lǐng)域的功能CWE-494:下載沒有完整性檢查的代碼四濒。

軟件和數(shù)據(jù)完整性故障 - 描述

軟件和數(shù)據(jù)完整性故障與不能防止完整性違規(guī)的代碼和基礎(chǔ)設(shè)施有關(guān)换况。例如,在對(duì)象或數(shù)據(jù)被編碼或序列化為攻擊者可以看到和修改的結(jié)構(gòu)的情況下盗蟆,很容易受到不安全的反序列化的影響戈二。另一種形式是應(yīng)用程序依賴來自不受信任的來源、存儲(chǔ)庫和內(nèi)容交付網(wǎng)絡(luò) (CDN) 的插件喳资、庫或模塊觉吭。不安全的 CI/CD 管道可能會(huì)導(dǎo)致未經(jīng)授權(quán)的訪問、惡意代碼或系統(tǒng)受損仆邓。最后鲜滩,許多應(yīng)用程序現(xiàn)在包括自動(dòng)更新功能,其中更新在沒有充分完整性驗(yàn)證的情況下被下載并應(yīng)用于以前受信任的應(yīng)用程序节值。攻擊者可能會(huì)上傳自己的更新以分發(fā)并在所有安裝上運(yùn)行徙硅。

軟件和數(shù)據(jù)完整性故障 - 如何預(yù)防

  • 確保未簽名或未加密的序列化數(shù)據(jù)不會(huì)在沒有某種形式的完整性檢查或數(shù)字簽名的情況下發(fā)送到不受信任的客戶端,以檢測(cè)序列化數(shù)據(jù)的篡改或重放

  • 通過簽名或類似機(jī)制驗(yàn)證軟件或數(shù)據(jù)來自預(yù)期來源

  • 確保庫和依賴項(xiàng)(例如 npm 或 Maven)使用受信任的存儲(chǔ)庫

  • 確保使用軟件供應(yīng)鏈安全工具(例如 OWASP Dependency Check 或 OWASP CycloneDX)來驗(yàn)證組件不包含已知漏洞

  • 確保您的 CI/CD 管道具有正確的配置和訪問控制搞疗,以確保流經(jīng)構(gòu)建和部署過程的代碼的完整性嗓蘑。

軟件和數(shù)據(jù)完整性故障 - 攻擊場景示例

場景 #1 不安全的反序列化: React 應(yīng)用程序調(diào)用一組 Spring Boot 微服務(wù)。作為函數(shù)式程序員匿乃,他們?cè)噲D確保他們的代碼是不可變的桩皿。他們提出的解決方案是序列化用戶狀態(tài)并在每個(gè)請(qǐng)求中來回傳遞它。攻擊者注意到“R00”Java 對(duì)象簽名并使用 Java Serial Killer 工具在應(yīng)用服務(wù)器上獲取遠(yuǎn)程代碼執(zhí)行權(quán)扳埂。

場景 #2 無需簽名即可更新:許多家用路由器业簿、機(jī)頂盒、設(shè)備固件和其他固件不通過簽名固件驗(yàn)證更新阳懂。未簽名固件是攻擊者越來越多的目標(biāo)梅尤,預(yù)計(jì)只會(huì)變得更糟柜思。這是一個(gè)主要問題,因?yàn)楹芏鄷r(shí)候除了在未來版本中修復(fù)并等待以前的版本過時(shí)之外巷燥,沒有任何補(bǔ)救機(jī)制赡盘。

場景#3 SolarWinds 惡意更新:眾所周知,國家會(huì)攻擊更新機(jī)制缰揪,最近的一次著名攻擊是 SolarWinds Orion 攻擊陨享。開發(fā)該軟件的公司擁有安全的構(gòu)建和更新完整性流程。盡管如此钝腺,這些還是能夠被破壞抛姑,并且在幾個(gè)月的時(shí)間里,該公司向 18,000 多個(gè)組織分發(fā)了一個(gè)高度針對(duì)性的惡意更新艳狐,其中大約 100 個(gè)組織受到了影響定硝。這是歷史上此類性質(zhì)最深遠(yuǎn)、最重大的違規(guī)行為之一毫目。

A09:2021 – 安全日志記錄和監(jiān)控失敗 概述

安全日志記錄和監(jiān)控來自行業(yè)調(diào)查(#3)蔬啡,比 2017 年 OWASP 前 10 名中的第十位略有上升。日志記錄和監(jiān)控可能很難測(cè)試镀虐,通常涉及采訪或詢問是否在滲透測(cè)試期間檢測(cè)到攻擊箱蟆。此類別的 CVE/CVSS 數(shù)據(jù)不多,但檢測(cè)和響應(yīng)漏洞至關(guān)重要刮便。盡管如此空猜,它對(duì)于可見性、事件警報(bào)和取證仍然非常有影響力诺核。此類別擴(kuò)展到CWE-778 日志記錄不足之外抄肖,包括CWE-117 日志的不當(dāng)輸出中和CWE-223 安全相關(guān)信息的遺漏CWE-532 將敏感信息插入日志文件窖杀。

安全日志記錄和監(jiān)控失敗 - 描述

回到 2021 年 OWASP 前 10 名漓摩,該類別旨在幫助檢測(cè)、升級(jí)和響應(yīng)主動(dòng)違規(guī)行為入客。如果沒有日志記錄和監(jiān)控管毙,就無法檢測(cè)到漏洞。任何時(shí)候都會(huì)發(fā)生日志記錄桌硫、檢測(cè)夭咬、監(jiān)控和主動(dòng)響應(yīng)不足的情況:

  • 不記錄可審計(jì)的事件,例如登錄铆隘、失敗登錄和高價(jià)值交易卓舵。

  • 警告和錯(cuò)誤不會(huì)生成、不充分或不清楚的日志消息膀钠。

  • 不會(huì)監(jiān)控應(yīng)用程序和 API 的日志是否存在可疑活動(dòng)掏湾。

  • 日志僅存儲(chǔ)在本地裹虫。

  • 適當(dāng)?shù)木瘓?bào)閾值和響應(yīng)升級(jí)流程沒有到位或有效。

  • DAST 工具(例如 OWASP ZAP)的滲透測(cè)試和掃描不會(huì)觸發(fā)警報(bào)融击。

  • 應(yīng)用程序無法實(shí)時(shí)或接近實(shí)時(shí)地檢測(cè)筑公、升級(jí)或警告主動(dòng)攻擊。

通過使用戶或攻擊者可以看到日志記錄和警報(bào)事件尊浪,您很容易受到信息泄漏的影響(請(qǐng)參閱 A01:2021 – 損壞的訪問控制)匣屡。

安全日志記錄和監(jiān)控失敗 - 如何預(yù)防

開發(fā)人員應(yīng)實(shí)施以下部分或全部控制措施,具體取決于應(yīng)用程序的風(fēng)險(xiǎn):

  • 確保所有登錄拇涤、訪問控制和服務(wù)器端輸入驗(yàn)證失敗都可以用足夠的用戶上下文來記錄捣作,以識(shí)別可疑或惡意帳戶,并保留足夠的時(shí)間以允許延遲取證分析工育。

  • 確保以日志管理解決方案可以輕松使用的格式生成日志虾宇。

  • 確保日志數(shù)據(jù)編碼正確,以防止對(duì)日志或監(jiān)控系統(tǒng)的注入或攻擊如绸。

  • 確保高價(jià)值交易具有帶有完整性控制的審計(jì)跟蹤,以防止篡改或刪除旭贬,例如僅追加數(shù)據(jù)庫表或類似的怔接。

  • DevSecOps 團(tuán)隊(duì)?wèi)?yīng)該建立有效的監(jiān)控和警報(bào),以便快速檢測(cè)和響應(yīng)可疑活動(dòng)稀轨。

  • 制定或采用事件響應(yīng)和恢復(fù)計(jì)劃扼脐,例如 NIST 800-61r2 或更高版本。

有商業(yè)和開源應(yīng)用程序保護(hù)框架(例如 OWASP ModSecurity 核心規(guī)則集)和開源日志關(guān)聯(lián)軟件(例如 ELK 堆棧)具有自定義儀表板和警報(bào)功能奋刽。

安全日志記錄和監(jiān)控失敗 - 攻擊場景示例

場景#1:由于缺乏監(jiān)控和日志記錄瓦侮,一家兒童健康計(jì)劃提供商的網(wǎng)站運(yùn)營商無法檢測(cè)到違規(guī)行為。外部方通知健康計(jì)劃提供者佣谐,攻擊者訪問并修改了超過 350 萬兒童的數(shù)千份敏感健康記錄肚吏。事后審查發(fā)現(xiàn)網(wǎng)站開發(fā)人員沒有解決重大漏洞。由于沒有對(duì)系統(tǒng)進(jìn)行日志記錄或監(jiān)控狭魂,數(shù)據(jù)泄露可能自 2013 年以來一直在進(jìn)行罚攀,時(shí)間超過七年。

場景#2:印度一家大型航空公司發(fā)生數(shù)據(jù)泄露事件雌澄,涉及數(shù)百萬乘客超過十年的個(gè)人數(shù)據(jù)斋泄,包括護(hù)照和信用卡數(shù)據(jù)。數(shù)據(jù)泄露發(fā)生在第三方云托管服務(wù)提供商處镐牺,該提供商在一段時(shí)間后將泄露事件通知了航空公司炫掐。

場景 #3:一家主要的歐洲航空公司遭遇了 GDPR 可報(bào)告的違規(guī)行為。據(jù)報(bào)道睬涧,該漏洞是由攻擊者利用的支付應(yīng)用程序安全漏洞引起的募胃,他們收集了超過 400,000 條客戶支付記錄旗唁。該航空公司因此被隱私監(jiān)管機(jī)構(gòu)罰款 2000 萬英鎊。

A10:2021 – 服務(wù)器端請(qǐng)求偽造 (SSRF) 概述

此類別是從行業(yè)調(diào)查 (#1) 中添加的摔认。數(shù)據(jù)顯示發(fā)生率相對(duì)較低逆皮,測(cè)試覆蓋率高于平均水平,利用和影響潛力評(píng)級(jí)高于平均水平参袱。由于新條目可能是用于關(guān)注和意識(shí)的單個(gè)或一小部分 CWE电谣,因此希望它們受到關(guān)注,并且可以在未來版本中納入更大的類別抹蚀。

服務(wù)器端請(qǐng)求偽造 (SSRF) - 描述

每當(dāng) Web 應(yīng)用程序在未驗(yàn)證用戶提供的 URL 的情況下獲取遠(yuǎn)程資源時(shí)剿牺,就會(huì)出現(xiàn) SSRF 缺陷。它允許攻擊者強(qiáng)制應(yīng)用程序?qū)⒕脑O(shè)計(jì)的請(qǐng)求發(fā)送到意外目的地环壤,即使受到防火墻晒来、VPN 或其他類型的網(wǎng)絡(luò) ACL 的保護(hù)也是如此。

隨著現(xiàn)代 Web 應(yīng)用程序?yàn)樽罱K用戶提供方便的功能郑现,獲取 URL 成為一種常見情況湃崩。因此,SSRF 的發(fā)病率正在增加接箫。此外攒读,由于云服務(wù)和架構(gòu)的復(fù)雜性,SSRF 的嚴(yán)重性越來越高辛友。

服務(wù)器端請(qǐng)求偽造 (SSRF) - 如何預(yù)防

開發(fā)人員可以通過實(shí)施以下部分或全部深度防御控制來防止 SSRF:

服務(wù)器端請(qǐng)求偽造 (SSRF) - 從網(wǎng)絡(luò)層

  • 在單獨(dú)的網(wǎng)絡(luò)中分段遠(yuǎn)程資源訪問功能以減少 SSRF 的影響

  • 強(qiáng)制執(zhí)行“默認(rèn)拒絕”防火墻策略或網(wǎng)絡(luò)訪問控制規(guī)則薄扁,以阻止除基本 Intranet 流量之外的所有流量

服務(wù)器端請(qǐng)求偽造 (SSRF) - 從應(yīng)用層:

  • 清理和驗(yàn)證所有客戶端提供的輸入數(shù)據(jù)

  • 使用肯定的允許列表強(qiáng)制執(zhí)行 URL 架構(gòu)、端口和目標(biāo)

  • 不要向客戶端發(fā)送原始響應(yīng)

  • 禁用 HTTP 重定向

  • 注意 URL 一致性废累,以避免 DNS 重新綁定和“檢查時(shí)間邓梅、使用時(shí)間”(TOCTOU) 競爭條件等攻擊

不要通過使用拒絕列表或正則表達(dá)式來緩解 SSRF。攻擊者擁有有效負(fù)載列表邑滨、工具和技能來繞過拒絕列表日缨。

服務(wù)器端請(qǐng)求偽造 (SSRF) - 攻擊場景示例

攻擊者可以使用 SSRF 攻擊受 Web 應(yīng)用程序防火墻、防火墻或網(wǎng)絡(luò) ACL 保護(hù)的系統(tǒng)驼修,使用的場景包括:

場景#1:端口掃描內(nèi)部服務(wù)器殿遂。如果網(wǎng)絡(luò)架構(gòu)是未分段的,攻擊者可以繪制內(nèi)部網(wǎng)絡(luò)乙各,并根據(jù)連接結(jié)果或連接或拒絕 SSRF 負(fù)載連接所用的時(shí)間來確定內(nèi)部服務(wù)器上的端口是打開還是關(guān)閉墨礁。

場景#2:敏感數(shù)據(jù)暴露。攻擊者可以訪問本地文件耳峦,例如 或內(nèi)部服務(wù)以獲取敏感信息恩静。

場景#3:訪問云服務(wù)的元數(shù)據(jù)存儲(chǔ)。大多數(shù)云提供商都有元數(shù)據(jù)存儲(chǔ),例如http://169.254.169.254/驶乾。攻擊者可以讀取元數(shù)據(jù)來獲取敏感信息邑飒。

場景#4:破壞內(nèi)部服務(wù)——攻擊者可以濫用內(nèi)部服務(wù)進(jìn)行進(jìn)一步的攻擊,例如遠(yuǎn)程代碼執(zhí)行 (RCE) 或拒絕服務(wù) (DoS)级乐。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末疙咸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子风科,更是在濱河造成了極大的恐慌撒轮,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贼穆,死亡現(xiàn)場離奇詭異题山,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)故痊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門顶瞳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人愕秫,你說我怎么就攤上這事慨菱。” “怎么了戴甩?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵抡柿,是天一觀的道長。 經(jīng)常有香客問我等恐,道長,這世上最難降的妖魔是什么备蚓? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任课蔬,我火速辦了婚禮,結(jié)果婚禮上郊尝,老公的妹妹穿的比我還像新娘二跋。我一直安慰自己,他們只是感情好流昏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布扎即。 她就那樣靜靜地躺著,像睡著了一般况凉。 火紅的嫁衣襯著肌膚如雪谚鄙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天刁绒,我揣著相機(jī)與錄音闷营,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛傻盟,可吹牛的內(nèi)容都是我干的速蕊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼娘赴,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼规哲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起诽表,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤唉锌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后关顷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體糊秆,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年议双,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了痘番。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡平痰,死狀恐怖汞舱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宗雇,我是刑警寧澤昂芜,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站赔蒲,受9級(jí)特大地震影響泌神,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜舞虱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一欢际、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧矾兜,春花似錦损趋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至返帕,卻和暖如春桐玻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背溉旋。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國打工畸冲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓邑闲,卻偏偏與公主長得像算行,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子苫耸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容