資安工程師Daniel Le Gall在SCRT資訊安全部落格發表文章,他發現臉書一臺伺服器存在遠端程式碼執行漏洞,在他回報臉書後,臉書已經修正漏洞並給作者5,000美元作為獎勵。

Daniel Le Gall經常性的對有參加Bug Bounty計畫的企業搜尋漏洞,而在他掃描臉書IP區段時,發現了託管在IP位置199.201.65.36,域名為sentryagreements.thefacebook.com的Sentry服務,Sentry是一個日誌收集網頁服務,以Python使用Django框架撰寫。Daniel Le Gall查看該服務發現,不明原因的有許多堆疊追蹤資訊會定期的出現在頁面上,這些資訊看似由於密碼重設功能使系統不穩定造成的,甚至有時候會崩潰,因為系統啟用Django除錯模式,因此環境參數都被顯示出來。

作者從列印出來的資訊,發現了利用Python物件序列化的二進位協定Pickle 駭入系統的方法,他提到,只要可以偽造包含任意Pickle內容的Session,就能夠在這個臉書的伺服器上執行任意程式碼,Daniel Le Gal從堆疊追蹤印出的資料SENTRY_OPTIONS,找到了用來Session簽入的密鑰。

Daniel Le Gal成功的利用這個漏洞建立了概念性驗證,置換既存Sentrysid Cookie的內容,並以任意物件填充讓系統休眠半分鐘。Daniel Le Gal在7月30日通報臉書後,臉書也即刻將系統下線,由於系統中沒有用戶資料,且位在單獨的VLAN中,因此沒有造成任何損害,臉書於8月9日修補完成系統重新上線,並給作者5,000美元作為獎勵。


Advertisement

更多 iThome相關內容