PDF XSS


漏洞測試:

下面,我們介紹如何把 JavaScript 嵌入到 PDF 文檔之中。我使用的是迅捷 PDF 編輯器未注冊版本

1、啟動迅捷 PDF 編輯器打開一個 PDF 文件,或者使用“創建 PDF 文件”功能,通過將其他文檔和資源轉換為“可移植文檔格式”來創建 PDF 文件。

2、單擊左側的“頁面”標簽,選擇與之對應的頁面縮略圖,然后從選項下拉菜單中選擇“頁面屬性”命令

選擇“頁面屬性”命令

3、在“頁面屬性”對話框單擊“動作”標簽,再從“選擇動作”下拉菜單中選擇“運行 JavaScript”命令,然后單擊【添加】按鈕,彈出 JavaScript 編輯器對話框

填寫 JavaScript 代碼

4、在彈出的“JavaScript 編輯器”對話框中輸入代碼:
app.alert(‘XSS’);

單擊【確定】按鈕保存 PDF 文件。

這里需要注意的是:Adobe 支持自身的 JavaScript 對象模型,例如 alert(‘xss’)必須被 APP 對象調用,因此變成了 app.alert(‘xss’)。這意味着,利用 JavaScript 進行攻擊時只能使用 Adobe 所支持的功能。

5、關閉軟件,直接打開剛才保存的 PDF 文件,JavaScript 代碼即被執行。經過測試最新版本的 360 瀏覽器和谷歌瀏覽器支持

 

現在,嘗試把 PDF 文件嵌入到網頁中並試運行。創建一個 HTML 文檔,代碼如下:

<html>
<body>
<object
data="test.pdf" width="100%" heigh="100%"
type="application/pdf"></object>
</body>
</html>

除了把 JavaScript 嵌入 PDF 文件中執行,還可以利用基於 DOM 的方法執行 PDF XSS。此類方法由 Stefano Di Paola 和 Giorgio Fedon 在第 23 屆 CCC 安全會議中提出,大家可以參考論文 Adobe Acrobat。

Stefano Di Paola 把 PDF 中的 DOM XSS 稱為 UXSS(Universal Cross-Site Scripting)。事實上,任何支持 PDF 文件的網站都可能存在這種漏洞。

修復方法

  而作為網站管理員或開發者,可以選擇強迫瀏覽器下載 PDF 文件,而不是提供在線瀏覽等,或修改 Web 服務器配置的 header 和相關屬性。

  可以使用第三方插件解析pdf,不用chrome自帶的pdf解析就行,https://github.com/adobe-type-tools/cmap-resources

 

參考鏈接:

https://www.t00ls.net/thread-48480-1-1.html

https://blog.xss.lc/experience-sharing/71.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM