Server Side XSS (Dynamic PDF)
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ako web stranica kreira PDF koristeći korisnički kontrolisani unos, možete pokušati da prevarite bot koji kreira PDF da izvrši proizvoljni JS kod. Dakle, ako bot za kreiranje PDF-a pronađe neku vrstu HTML tagova, on će ih interpretirati, i možete iskoristiti ovo ponašanje da izazovete Server XSS.
Molimo vas, primetite da <script></script>
tagovi ne rade uvek, tako da će vam biti potrebna drugačija metoda za izvršavanje JS (na primer, zloupotreba <img
).
Takođe, imajte na umu da ćete u redovnoj eksploataciji biti u mogućnosti da vidite/preuzmete kreirani pdf, tako da ćete moći da vidite sve što pišete putem JS (koristeći document.write()
na primer). Ali, ako ne možete da vidite kreirani PDF, verovatno ćete morati da izvučete informacije praveći web zahteve ka vama (Blind).
wkhtmltopdf je poznat po svojoj sposobnosti da konvertuje HTML i CSS u PDF dokumente, koristeći WebKit rendering engine. Ovaj alat je dostupan kao open-source komandna linijska alatka, što ga čini dostupnim za širok spektar aplikacija.
TCPDF nudi robusno rešenje unutar PHP ekosistema za generisanje PDF-a. Sposoban je da obrađuje slike, grafiku i enkripciju, pokazujući svoju svestranost za kreiranje složenih dokumenata.
Za one koji rade u Node.js okruženju, PDFKit predstavlja izvodljivu opciju. Omogućava generisanje PDF dokumenata direktno iz HTML-a i CSS-a, pružajući most između web sadržaja i formata pogodnih za štampu.
Java programeri bi mogli preferirati iText, biblioteku koja ne samo da olakšava kreiranje PDF-a, već takođe podržava napredne funkcije poput digitalnih potpisa i popunjavanja obrazaca. Njena sveobuhvatna funkcionalnost čini je pogodnom za generisanje sigurnih i interaktivnih dokumenata.
FPDF je još jedna PHP biblioteka, koja se odlikuje svojom jednostavnošću i lakoćom korišćenja. Dizajnirana je za programere koji traže jednostavan pristup generisanju PDF-a, bez potrebe za opsežnim funkcijama.
Bilo koji od prethodnih ili sledećih payload-a može se koristiti unutar ovog SVG payload-a. Jedan iframe koji pristupa Burpcollab poddomeni i drugi koji pristupa metapodacima su dati kao primeri.
Možete pronaći mnogo drugih SVG payload-a na https://github.com/allanlw/svg-cheatsheet
Najbolji način da iskoristite ovu ranjivost je da zloupotrebite ranjivost kako biste naterali bot da učita skript koji lokalno kontrolišete. Tada ćete moći da promenite payload lokalno i naterate bot da ga učita sa istim kodom svaki put.
Promenite file:///etc/passwd
u http://169.254.169.254/latest/user-data
na primer da pokušate da pristupite eksternoj veb stranici (SSRF).
Ako je SSRF dozvoljen, ali ne možete da dođete do zanimljive domene ili IP adrese, proverite ovu stranicu za potencijalne zaobilaženja.
Ova ranjivost se može vrlo lako pretvoriti u SSRF (jer možete naterati skriptu da učita spoljne resurse). Tako da samo pokušajte da je iskoristite (pročitajte neke metapodatke?).
Postoje neki HTML 2 PDF motori koji omogućavaju da specifikujete priloge za PDF, kao što je PD4ML. Možete zloupotrebiti ovu funkciju da priložite bilo koju lokalnu datoteku PDF-u. Da bih otvorio prilog, otvorio sam datoteku sa Firefox-om i dvaput kliknuo na simbol spajalice da sačuvam prilog kao novu datoteku. Zahvatanje PDF odgovora sa burp-om takođe bi trebalo da prikaže prilog u čistom tekstu unutar PDF-a.
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)