圖片來源: 

Portable Data exFiltration XSS for PDFs - Gareth Heyes,https://www.youtube.com/watch?v=Sz-zEDNTe8U&feature=emb_logo

研究人員在Black Hat Europe示範,用簡單一個連結就可以注入指令並竊取、甚至修改網站PDF文件的內容。

許多組織在網站伺服器端產生PDF文件,像是電子票證、收據、登機證、支付回條等等,許多都是敏感內容,像是銀行帳號、護照號碼、地址,而成為攻擊者的目標。

PortSwiggr安全測試廠商研究人員Gareth Heyes指出,伺服器端的PDF有很多地方可以上下其手,例如文字字串或注釋(annotations),因為這些物件允許開發人員在括號內嵌入文字或URI(統一資源識別碼),只要能注入括號或是反斜線,就能在文件中注入PDF程式碼,甚至有害的PDF物件或action。

這個攻擊手法成功關鍵在PDF函式庫能允許注入括號或反斜線。他指出,一個安全的函式庫應該要能跳脫(escape)URI或文字字串中的括號或反斜線,要是缺乏這能力,攻擊者就可以透過呼叫PDF JavaScript,或利用submitForm action對外部URL發出POST呼叫,類似Blind XSS的攻擊手法。

結果就是讓攻擊者在PDF產生過程中注入元件來控制PDF文件,例如在PDF文件中加入惡意連結,讓下載該文件的用戶點入連結或任何部份(如注釋),即竊取整份文件資訊,並將之傳送到外部遠端伺服器上,造成資訊外洩。

研究人員檢視了8種PDF函式庫,發現很受歡迎的PDF-Lib及jsPDF有這個漏洞,前者每周下載5.2萬次,後者更超過25萬次。兩者雖然在文字字串部份防止注入,但注釋部份卻成為破口。此外,他甚至成功在安全防護較高的Adobe Acrobat及Chrome的PDF引擎PDFium,也成功在注釋中注入JavaScript,都不需使用者互動。

研究人員也對網站管理員提供防範方法。在撰寫函式庫時,企業應防範能正確跳脫用戶輸入的文字串及注釋URI中的括號或反斜線,而在Web app層,則應小心驗證,確保PDF沒有任何可疑的JavaScript或SubmitForm action。

 

熱門新聞

Advertisement