Share
## https://sploitus.com/exploit?id=2750BB68-0A18-5845-ABD6-5A1FA81BF5C7
> [!IMPORTANT]
> 本リポジトリは、脆弱性を学習するためのものです。
> 本ハンズオンは、必ず自分の管理する適切なコンピュータで行ってください。違法行為は絶対に行わないでください。
> また本リポジトリによって発生した、一切の損害・責任を、作者は負いません。
# CVE-2024-4367-hands-on
CVE-2024-4367を体験するハンズオン
## poc.pdfの作成
```bash
python CVE-2024-4367-PoC/CVE-2024-4367.py "alert('document.domain')"
```
引用元:https://github.com/LOURC0D3/CVE-2024-4367-PoC
攻撃用のpoc.pdfが作成されます。
詳しい使い方は、下記を参考にしてください。
https://github.com/LOURC0D3/CVE-2024-4367-PoC
## 脆弱性のあるFirefoxを起動し、攻撃を確認
```bash
python firefox.py 125
```
攻撃可能なバージョンのFirefox Nightlyを使用して、poc.pdfを開きます。
初回起動時には、Firefox Nightlyのダウンロードを行うため、時間がかかります。
JavaScriptが実行され、アラートが表示されたことを確認します。
## 脆弱性修正済みのFirefoxで検証
```bash
python firefox.py 135
```
新しいバージョンのFirefox Nightlyでpoc.pdfを開き、アラートが表示されず、脆弱性が修正されていることを確認します。
## PDF.jsのソースコードの比較
脆弱性が含まれている[vulnerable-pdf.js](vulnerable-pdf.js)と脆弱性が修正された[invulnerable-pdf.js](invulnerable-pdf.js)があります。
[pdfjs_diff_font_renderer.js](pdfjs_diff_font_renderer.js)は、[vulnerable-pdf.js/src/core/font_renderer.js](vulnerable-pdf.js/src/core/font_renderer.js)と[invulnerable-pdf.js/src/core/font_renderer.js](invulnerable-pdf.js/src/core/font_renderer.js)のdiff差分です。