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)
Αν μια ιστοσελίδα δημιουργεί ένα PDF χρησιμοποιώντας είσοδο που ελέγχεται από τον χρήστη, μπορείτε να προσπαθήσετε να παγιδεύσετε το bot που δημιουργεί το PDF ώστε να εκτελέσει αυθαίρετο κώδικα JS. Έτσι, αν το bot δημιουργίας PDF βρει κάποιο είδος HTML tags, θα τα ερμηνεύσει, και μπορείτε να καταχραστείτε αυτή τη συμπεριφορά για να προκαλέσετε ένα Server XSS.
Παρακαλώ, σημειώστε ότι οι ετικέτες <script></script>
δεν λειτουργούν πάντα, οπότε θα χρειαστείτε μια διαφορετική μέθοδο για να εκτελέσετε JS (για παράδειγμα, καταχρώντας το <img
).
Επίσης, σημειώστε ότι σε μια κανονική εκμετάλλευση θα είστε σε θέση να δείτε/κατεβάσετε το δημιουργημένο pdf, οπότε θα μπορείτε να δείτε τα πάντα που γράφετε μέσω JS (χρησιμοποιώντας document.write()
για παράδειγμα). Αλλά, αν δεν μπορείτε να δείτε το δημιουργημένο PDF, πιθανότατα θα χρειαστεί να εξάγετε τις πληροφορίες κάνοντας web request σε εσάς (Blind).
wkhtmltopdf είναι γνωστό για την ικανότητά του να μετατρέπει HTML και CSS σε έγγραφα PDF, χρησιμοποιώντας τη μηχανή απόδοσης WebKit. Αυτό το εργαλείο είναι διαθέσιμο ως ανοιχτού κώδικα εργαλείο γραμμής εντολών, καθιστώντας το προσβάσιμο για μια ευρεία γκάμα εφαρμογών.
TCPDF προσφέρει μια ισχυρή λύση εντός του οικοσυστήματος PHP για τη δημιουργία PDF. Είναι ικανό να χειρίζεται εικόνες, γραφικά και κρυπτογράφηση, επιδεικνύοντας την ευελιξία του για τη δημιουργία σύνθετων εγγράφων.
Για όσους εργάζονται σε περιβάλλον Node.js, το PDFKit παρουσιάζει μια βιώσιμη επιλογή. Επιτρέπει τη δημιουργία εγγράφων PDF απευθείας από HTML και CSS, παρέχοντας μια γέφυρα μεταξύ του διαδικτυακού περιεχομένου και των εκτυπώσιμων μορφών.
Οι προγραμματιστές Java μπορεί να προτιμούν το iText, μια βιβλιοθήκη που διευκολύνει όχι μόνο τη δημιουργία PDF αλλά υποστηρίζει επίσης προηγμένα χαρακτηριστικά όπως ψηφιακές υπογραφές και συμπλήρωση φορμών. Το εκτενές σύνολο χαρακτηριστικών του το καθιστά κατάλληλο για τη δημιουργία ασφαλών και διαδραστικών εγγράφων.
FPDF είναι μια άλλη βιβλιοθήκη PHP, διακριτή για την απλότητα και την ευχρηστία της. Είναι σχεδιασμένη για προγραμματιστές που αναζητούν μια απλή προσέγγιση στη δημιουργία PDF, χωρίς την ανάγκη εκτενών χαρακτηριστικών.
Οποιοδήποτε από τα προηγούμενα ή τα ακόλουθα payloads μπορεί να χρησιμοποιηθεί μέσα σε αυτό το SVG payload. Ένα iframe που έχει πρόσβαση στο υποτομέα Burpcollab και ένα άλλο που έχει πρόσβαση στο endpoint μεταδεδομένων παρατίθενται ως παραδείγματα.
Μπορείτε να βρείτε πολλά άλλα SVG payloads στο https://github.com/allanlw/svg-cheatsheet
Ο καλύτερος συμβατός τρόπος για να εκμεταλλευτείτε αυτήν την ευπάθεια είναι να την κακοποιήσετε ώστε να κάνετε το bot να φορτώσει ένα script που ελέγχετε τοπικά. Στη συνέχεια, θα μπορείτε να αλλάξετε το payload τοπικά και να κάνετε το bot να το φορτώνει με τον ίδιο κώδικα κάθε φορά.
Αλλάξτε το file:///etc/passwd
σε http://169.254.169.254/latest/user-data
για παράδειγμα για να δοκιμάσετε να αποκτήσετε πρόσβαση σε μια εξωτερική ιστοσελίδα (SSRF).
Εάν επιτρέπεται το SSRF, αλλά δεν μπορείτε να φτάσετε σε έναν ενδιαφέροντα τομέα ή IP, ελέγξτε αυτή τη σελίδα για πιθανά bypasses.
Αυτή η ευπάθεια μπορεί να μετατραπεί πολύ εύκολα σε SSRF (καθώς μπορείτε να κάνετε το σενάριο να φορτώσει εξωτερικούς πόρους). Έτσι, απλώς προσπαθήστε να την εκμεταλλευτείτε (διαβάστε κάποια μεταδεδομένα;).
Υπάρχουν μερικές μηχανές HTML 2 PDF που επιτρέπουν να καθορίσετε συνημμένα για το PDF, όπως το PD4ML. Μπορείτε να εκμεταλλευτείτε αυτή τη δυνατότητα για να συνημμένο οποιοδήποτε τοπικό αρχείο στο PDF. Για να ανοίξω το συνημμένο, άνοιξα το αρχείο με Firefox και διπλό κλικ στο σύμβολο του συνημμένου για να αποθηκεύσω το συνημμένο ως νέο αρχείο. Η καταγραφή της απάντησης PDF με το burp θα πρέπει επίσης να δείξει το συνημμένο σε καθαρό κείμενο μέσα στο PDF.
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)