iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
Security

讓Web開發者森77的Hacking Trick系列 第 26

[Day26] Business Logic Vulnerabilities - 商業邏輯漏洞

前言

前面介紹過很多各種各樣的web application攻擊手法,今天來介紹Business Logic中引發的問題

正文

Business Logic Errors

Business Logic Vulnerabilities並非是一種特定單一的漏洞,它可以存在於很多不同的攻擊手法,這通常是在規劃架構和開發時所制定的設計方案時,產生的邏輯上的缺陷。跟Misconfig造成的漏洞不同,因為Business Logic漏洞通常指在開發時的出現的邏輯問題,並非是設定上的缺陷。

Business Logic(業務邏輯/商業邏輯)漏洞是指應用程式設計和實作時存在的缺陷,允許攻擊者使用(操縱)合法功能引發預期外的行為來實現某些惡意目標。這種漏洞通常是因為開發者沒有預測通靈到"可能"發生的應用程式例外,而沒有安全的處理。這在擁有複雜架構與邏輯的網站應用程式/系統上特別常見,因為網站上的功能可能不是同一個團隊所開發的,因此開發人員甚至自己也沒有完全理解整個系統有哪些功能,和這些功能如何運作,尤其複雜系統的大型程式碼庫,幾乎無法深入了解所有功能的所有實作。

要利用Business Logic漏洞,攻擊者需要能夠想到開發人員沒有想到的方式與應用程式進行互動,嘗試一些特殊的思維/邏輯/行為才能成功。這是因為開發時的Business Logic通常會對預設(指定)應用程式和其功能進行約束,也就是說,被開發者制定出來的Business role會規定應用程式在特定場景中給出特定的回應。

而這當中若是存在邏輯性的弱點,就可以讓攻擊者繞過規則。一個簡單且實際發生過的例子是,在具有購買功能的網站,因為網站信任來自用戶的輸出(或是說開發者沒想到有人沒有乖乖點購買鍵,而是把Request攔下來後修改),而使攻擊者可以用更低的價格取得商品。

POST /shop HTTP/1.1
Host: example.com
...

item=Car&amount=99&price=1

Business Logic漏洞會因為每個網站應用程式上提供的功能不同,而有所差異。這種基於邏輯的漏洞通常是每個網站獨有的,因此攻擊者需要有足夠的通靈能力能夠推測網站上的應用程式和功能之間的關係和可能存在的邏輯問題,也因為這種特性,使用弱點掃描軟體要檢測到這種問題非常困難,常常需要專業的Bug Hunter、滲透測試人員和白箱(White box)檢測比較有容易發現。

Business Logic漏洞影響也依據網站應用程式功能的不同而有所差異,也有可能的狀況是,一個網站功能存在影響較低的邏輯錯誤,但因為網站的其他功能引用或是關聯這個功能,而造成非常嚴重的危害。

除了剛剛介紹過的利用非預期的低價取得商品的例子外,還有利用邏輯漏洞的2FA(多重要素驗證) bypass、在P2P交易使用負值的(攻擊者向受害者匯款,但款項的value為負值)、密碼重置攻擊、身分認證bypass。當然,這些只是一些比較好想像的邏輯漏洞,實際上常常複雜、難以理解很多,也因為網站提供的應用程式取向、功能、引用、關聯而有所不同。可以參考底下的Case Study就知道影響範圍非常廣,攻擊也千奇百怪。

Case Study


上一篇
[Day25] JSON Injection
下一篇
[Day27 ] Chained Exploits - 鏈式漏洞利用(漏洞利用組合技)
系列文
讓Web開發者森77的Hacking Trick30

尚未有邦友留言

立即登入留言