聚焦源代碼安全,網羅國內外最新資訊!
編譯:代碼衛士
Oxeye 公司的研究總監 Daniel Abeles 指出,「ParseThru 是一種參數走私攻擊,意味着在一定條件下,由於使用了不安全的URL解析,可導致攻擊者繞過基於HTTP請求參數的驗證。成功攻陷可造成多種後果,如讀取敏感數據、提取機密信息,代表其它用戶執行各種操作。」

Golang 或Go 使用 「net/url」 庫解析URL,而且在1.17版本之前,將在URL的查詢部分將分號視作有效的分割符。然而從1.17版本開始,分號被視作錯誤,而負責獲取解析查詢字符串的一種方法忽略了返回的錯誤。這意味着,當構建於1.17或後續版本的基於Go的公共API和運行之前版本的內部服務進行通信時,在查詢字符串中包含分號的特殊構造的請求可遭走私。
研究人員在多個開源項目中找到大量可遭成功利用的實例,其中包括開源註冊表Harbor,「認證用戶(即使權限最低)能夠發出特殊請求,讀取自己無法訪問的受限項目的圖像層。」其它例子還包括旨在簡化微服務部署的現代HTTP反向代理和加載平衡器 Traefik 和用於服務成分的HTTP路由器和反向代理 Skipper。
Abeles 認為,其它編程語言也易遭類似問題困擾。他指出,「ParseThru 漏洞基本基於對不安全URL解析方法的使用,並不會直接反映任何特定於Golang 的挑戰,而是多數編程語言共有的挑戰。每種語言都有自身對URL解析的實現。然而,它們各不相同,從而導致解析差距,最終觸發這類漏洞。」
Oxeye 公司表示已將研究結果披露給受影響項目的維護人員,幫助他們修復該漏洞。該公司表示,「建議審計在使用狀態中的 Golang 應用程序,確保應用了正確的打補丁和/或修復措施。」
https://portswigger.net/daily-swig/parsethru-http-parameter-smuggling-flaw-uncovered-in-several-go-applications
題圖:PexelsLicense
本文由奇安信編譯,不代表奇安信觀點。轉載請註明「轉自奇安信代碼衛士 https://codesafe.qianxin.com」。


奇安信代碼衛士 (codesafe)
國內首個專注於軟件開發安全的產品線。
覺得不錯,就點個「在看」 或 "贊」 吧~