Web 簡介¶
隨着 WEB 2.0、社交網絡、微博等等一系列新型的互聯網產品的誕生,基於 WEB 環境的互聯網應用越來越廣泛,企業信息化的過程中各種應用都架設在 WEB 平臺上,WEB 業務的迅速發展也引起黑客們的強烈關注,接踵而至的就是 WEB 安全威脅的凸顯,黑客利用網站操作系統的漏洞和 WEB 服務程序的漏洞得到 WEB 服務器的控制權限,輕則篡改網頁內容,重則竊取重要內部數據,更爲嚴重的則是在網頁中植入惡意代碼,使得網站訪問者受到侵害。
在 CTF 競賽中,WEB 也是佔比重很大的一個方向之一,WEB 類的題目種類繁多,知識點細碎,時效性強,能緊跟時下熱點漏洞,貼近實戰。
WEB 類的題目包括但不限於:SQL 注入、XSS 跨站腳本、CSRF 跨站請求僞造、文件上傳、文件包含、框架安全、PHP 常見漏洞、代碼審計等。
SQL 注入¶
通過在用戶可控參數中注入 SQL 語法,破壞原有 SQL 結構,達到編寫程序時意料之外結果的攻擊行爲。其成因可以歸結爲以下兩個原因疊加造成的:
- 程序編寫者在處理應用程序和數據庫交互時,使用字符串拼接的方式構造 SQL 語句
- 未對用戶可控參數進行足夠的過濾便將參數內容拼接進入到 SQL 語句中
XSS 跨站腳本攻擊¶
跨站腳本攻擊(Cross Site Scripting),爲不和層疊樣式表(Cascading Style Sheets,CSS)的縮寫混淆,故將跨站腳本攻擊縮寫爲 XSS。惡意攻擊者往 WEB 頁面裏插入惡意 HTML 代碼,當用戶瀏覽該頁之時,嵌入其中 Web 裏面的 HTML 代碼會被執行,從而達到惡意攻擊用戶的特殊目的。
命令執行¶
當應用需要調用一些外部程序去處理內容的情況下,就會用到一些執行系統命令的函數。如 PHP 中的 system
、exec
、shell_exec
等,當用戶可以控制命令執行函數中的參數時,將可以注入惡意系統命令到正常命令中,造成命令執行攻擊。這裏還是主要以 PHP 爲主介紹命令執行漏洞,Java 等應用的細節待補充。
文件包含¶
如果允許客戶端用戶輸入控制動態包含在服務器端的文件,會導致惡意代碼的執行及敏感信息泄露,主要包括本地文件包含和遠程文件包含兩種形式。
CSRF 跨站請求僞造¶
跨站請求僞造(Cross-Site Request Forgery,CSRF)是一種使已登錄用戶在不知情的情況下執行某種動作的攻擊。因爲攻擊者看不到僞造請求的響應結果,所以 CSRF 攻擊主要用來執行動作,而非竊取用戶數據。當受害者是一個普通用戶時,CSRF 可以實現在其不知情的情況下轉移用戶資金、發送郵件等操作;但是如果受害者是一個具有管理員權限的用戶時 CSRF 則可能威脅到整個 WEB 系統的安全。
SSRF 服務器端請求僞造¶
SSRF(Server-Side Request Forgery:服務器端請求僞造)是一種由攻擊者構造形成由服務端發起請求的一個安全漏洞。一般情況下,SSRF 攻擊的目標是從外網無法訪問的內部系統。
文件上傳¶
在網站的運營過程中,不可避免地要對網站的某些頁面或者內容進行更新,這時便需要使用到網站的文件上傳的功能。如果不對被上傳的文件進行限制或者限制被繞過,該功能便有可能會被利用於上傳可執行文件、腳本到服務器上,進而進一步導致服務器淪陷。
點擊劫持¶
Clickjacking(點擊劫持)是由互聯網安全專家羅伯特·漢森和耶利米·格勞斯曼在 2008 年首創的。
是一種視覺欺騙手段,在 WEB 端就是 iframe 嵌套一個透明不可見的頁面,讓用戶在不知情的情況下,點擊攻擊者想要欺騙用戶點擊的位置。
由於點擊劫持的出現,便出現了反 frame 嵌套的方式,因爲點擊劫持需要 iframe 嵌套頁面來攻擊。
下面代碼是最常見的防止 frame 嵌套的例子:
if(top.location!=location)
top.location=self.location;
VPS 虛擬專用服務器¶
VPS(Virtual Private Server 虛擬專用服務器)技術,將一部服務器分割成多個虛擬專享服務器的優質服務。實現 VPS 的技術分爲容器技術,和虛擬化技術。在容器或虛擬機中,每個 VPS 都可分配獨立公網 IP 地址、獨立操作系統、實現不同 VPS 間磁盤空間、內存、CPU 資源、進程和系統配置的隔離,爲用戶和應用程序模擬出獨佔使用計算資源的體驗。VPS 可以像獨立服務器一樣,重裝操作系統,安裝程序,單獨重啓服務器。VPS 爲使用者提供了管理配置的自由,可用於企業虛擬化,也可以用於 IDC 資源租用。
IDC 資源租用,由 VPS 提供商提供。不同 VPS 提供商所使用的硬件 VPS 軟件的差異,及銷售策略的不同,VPS 的使用體驗也有較大差異。尤其是 VPS 提供商超賣,導致實體服務器超負荷時,VPS 性能將受到極大影響。相對來說,容器技術比虛擬機技術硬件使用效率更高,更易於超賣,所以一般來說容器 VPS 的價格都低於虛擬機 VPS 的價格。
條件競爭¶
條件競爭漏洞是一種服務器端的漏洞,由於服務器端在處理不同用戶的請求時是併發進行的,因此,如果併發處理不當或相關操作邏輯順序設計的不合理時,將會導致此類問題的發生。
XXE¶
XXE Injection 即 XML External Entity Injection,也就是 XML 外部實體注入攻擊.漏洞是在對非安全的外部實體數據進⾏行處理時引發的安全問題。
在 XML 1.0 標準裏,XML 文檔結構⾥裏定義了實體(entity)這個概念.實體可以通過預定義在文檔中調用,實體的標識符可訪問本地或遠程內容.如果在這個過程中引入了「污染」源,在對 XML 文檔處理後則可能導致信息泄漏等安全問題。
XSCH¶
由於網站開發者在使用 Flash、Silverlight 等進行開發的過程中的疏忽,沒有對跨域策略文件(crossdomain.xml)進行正確的配置導致問題產生。 例如:
<cross-domain-policy>
<allow-access-from domain=“*”/>
</cross-domain-policy>
因爲跨域策略文件配置爲 *
,也就指任意域的 Flash 都可以與它交互,導致可以發起請求、獲取數據。
越權(功能級訪問缺失)¶
越權漏洞是 WEB 應用程序中一種常見的安全漏洞。它的威脅在於一個賬戶即可控制全站用戶數據。當然這些數據僅限於存在漏洞功能對應的數據。越權漏洞的成因主要是因爲開發人員在對數據進行增、刪、改、查詢時對客戶端請求的數據過分相信而遺漏了權限的判定。所以測試越權就是和開發人員拼細心的過程。
敏感信息泄露¶
敏感信息指不爲公衆所知悉,具有實際和潛在利用價值,丟失、不當使用或未經授權訪問對社會、企業或個人造成危害的信息。包括:個人隱私信息、業務經營信息、財務信息、人事信息、IT 運維信息等。 泄露途徑包括 Github、百度文庫、Google code、網站目錄等。
錯誤的安全配置¶
Security Misconfiguration:有時候,使用默認的安全配置可能會導致應用程序容易遭受多種攻擊。在已經部署的應用、WEB 服務器、數據庫服務器、操作系統、代碼庫以及所有和應用程序相關的組件中,都應該使用現有的最佳安全配置,這一點至關重要。
請求走私¶
在 HTTP 協議中,存在兩種 Header 來指定請求的結尾,分別是 Content-Length 以及 Transfer-Encoding。在複雜的網絡環境下,不同的服務器以不同的方式實現 RFC 標準。因此,相同的 HTTP 請求,不同的服務器可能會產生不同的處理結果,這樣就產生了了安全風險。
TLS 投毒¶
在 TLS 協議中,存在一種會話複用機制,當支持該類特性的客戶端訪問了惡意 TLS 服務器後,客戶端會存儲惡意服務器下發的 Session ,在客戶端重用會話時,配合 DNS Rebinding 可以實現讓客戶端發送惡意 Session 至內網服務,從而達到 SSRF 攻擊效果,包括可以任意寫入 Memcached 等內網服務,進而配合其他漏洞造成 RCE 等危害。
XS-Leaks¶
跨站腳本泄漏(又稱 XS-Leaks/XSLeaks),是一類利用 Web 平臺內置的側信道衍生出來的漏洞。其原理是利用網絡上的這種側信道來揭示用戶的敏感信息,如用戶在其他網絡應用中的數據、用戶本地環境信息,或者是用戶所連接的內部網絡信息等。
該攻擊利用了 Web 平臺的核心原則--可組合性,即允許網站之間相互作用,並濫用合法機制來推斷用戶的信息。該攻擊與跨站請求僞造(CSRF)技術主要區別在於 XS-Leaks 並不僞造用戶請求執行操作,而是用來推斷、獲取用戶信息。
瀏覽器提供了各種各樣的功能來支持不同 Web 應用程序之間的互動;例如,瀏覽器允許一個網站加載子資源、導航或向另一個應用程序發送消息。雖然這些行爲通常受到網絡平臺的安全機制的限制(例如同源政策),但 XS-Leaks 利用了網站之間互動過程中的各種行爲來泄露用戶信息。
WAF¶
Web 應用防護系統(也稱:網站應用級入侵防禦系統。英文:Web Application Firewall,簡稱:WAF)。利用國際上公認的一種說法:WEB 應用防火牆是通過執行一系列針對 HTTP/HTTPS 的安全策略來專門爲 WEB 應用提供保護的一款產品。
IDS¶
IDS 是英文 Intrusion Detection Systems 的縮寫,中文意思是「入侵檢測系統」。專業上講就是依照一定的安全策略,通過軟、硬件,對網絡、系統的運行狀況進行監視,儘可能發現各種攻擊企圖、攻擊行爲或者攻擊結果,以保證網絡系統資源的機密性、完整性和可用性。做一個形象的比喻:假如防火牆是一幢大樓的門鎖,那麼 IDS 就是這幢大樓裏的監視系統。一旦小偷爬窗進入大樓,或內部人員有越界行爲,只有實時監視系統才能發現情況併發出警告。
IPS¶
入侵防禦系統(IPS:Intrusion Prevention System)是電腦網絡安全設施,是對防病毒軟件(Antivirus Programs)和防火牆(Packet Filter,Application Gateway)的補充。入侵預防系統(Intrusion-prevention system)是一部能夠監視網絡或網絡設備的網絡資料傳輸行爲的計算機網絡安全設備,能夠即時的中斷、調整或隔離一些不正常或是具有傷害性的網絡資料傳輸行爲。