Server Side XSS (Dynamic PDF)
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
As 'n webblad 'n PDF genereer met gebruikersbeheerde invoer, kan jy probeer om die bot te mislei wat die PDF genereer om arbitraire JS-kode uit te voer. So, as die PDF-creator bot 'n soort HTML tags vind, gaan dit dit interpreteer, en jy kan hierdie gedrag misbruik om 'n Server XSS te veroorsaak.
Let asseblief daarop dat die <script></script>
tags nie altyd werk nie, so jy sal 'n ander metode nodig hê om JS uit te voer (byvoorbeeld, deur <img
te misbruik).
Let ook daarop dat jy in 'n gewone uitbuiting die geskepte pdf kan sien/aflaai, so jy sal alles kan sien wat jy via JS skryf (met document.write()
byvoorbeeld). Maar, as jy die geskepte PDF nie kan sien nie, sal jy waarskynlik die inligting moet onttrek deur web versoeke na jou te maak (Blind).
wkhtmltopdf is bekend vir sy vermoë om HTML en CSS in PDF-dokumente om te skakel, met die WebKit-rendering enjin. Hierdie hulpmiddel is beskikbaar as 'n oopbron-opdraglyn nut, wat dit toeganklik maak vir 'n wye reeks toepassings.
TCPDF bied 'n robuuste oplossing binne die PHP-ekosisteem vir PDF-generasie. Dit is in staat om beelde, grafika en versleuteling te hanteer, wat sy veelsydigheid vir die skep van komplekse dokumente toon.
Vir diegene wat in 'n Node.js-omgewing werk, bied PDFKit 'n lewensvatbare opsie. Dit stel die generasie van PDF-dokumente direk uit HTML en CSS in staat, wat 'n brug bied tussen webinhoud en drukbare formate.
Java-ontwikkelaars mag iText verkies, 'n biblioteek wat nie net PDF-skep vergemaklik nie, maar ook gevorderde funksies soos digitale handtekeninge en vorm invul ondersteun. Sy omvattende funksieset maak dit geskik vir die generering van veilige en interaktiewe dokumente.
FPDF is 'n ander PHP-biblioteek, wat gekenmerk word deur sy eenvoud en gebruiksgemak. Dit is ontwerp vir ontwikkelaars wat 'n eenvoudige benadering tot PDF-generasie soek, sonder die behoefte aan uitgebreide funksies.
Enige van die vorige of volgende payloads kan binne hierdie SVG-payload gebruik word. Een iframe wat toegang tot die Burpcollab subdomein verkry en 'n ander een wat toegang tot die metadata-eindpunt verkry, word as voorbeelde gegee.
U kan baie ander SVG payloads vind in https://github.com/allanlw/svg-cheatsheet
Die beste toepaslike manier om hierdie kwesbaarheid te benut, is om die kwesbaarheid te misbruik om die bot 'n skrip te laat laai wat jy plaaslik beheer. Dan sal jy in staat wees om die payload plaaslik te verander en die bot dit elke keer met dieselfde kode te laat laai.
Verander file:///etc/passwd
na http://169.254.169.254/latest/user-data
byvoorbeeld om te probeer om 'n eksterne webblad te bereik (SSRF).
As SSRF toegelaat word, maar jy kan nie bereik nie 'n interessante domein of IP, kyk na hierdie bladsy vir potensiële omseilings.
Hierdie kwesbaarheid kan baie maklik in 'n SSRF omgeskakel word (aangesien jy die skrip kan laat laai eksterne hulpbronne). Probeer dus net om dit te benut (lees 'n bietjie metadata?).
Daar is 'n paar HTML 2 PDF enjin wat toelaat om aanhangsels vir die PDF te spesifiseer, soos PD4ML. Jy kan hierdie funksie misbruik om enige plaaslike lêer aan die PDF te heg. Om die aanhangsel te open, het ek die lêer met Firefox geopen en dubbelklik op die Papierclip simbool om die aanhangsel as 'n nuwe lêer te stoor. Om die PDF antwoord met burp te vang, behoort ook die aanhangsel in duidelike teks binne die PDF te wys.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)