Server Side XSS (Dynamic PDF)
Server Side XSS (Dynamic PDF)
Αν μια ιστοσελίδα δημιουργεί ένα PDF χρησιμοποιώντας είσοδο που ελέγχεται από τον χρήστη, μπορείτε να προσπαθήσετε να παγιδεύσετε το bot που δημιουργεί το PDF ώστε να εκτελέσει αυθαίρετο κώδικα JS. Έτσι, αν το bot δημιουργίας PDF βρει κάποιο είδος HTML tags, θα τα ερμηνεύσει, και μπορείτε να καταχραστείτε αυτή τη συμπεριφορά για να προκαλέσετε ένα Server XSS.
Παρακαλώ, σημειώστε ότι οι ετικέτες <script></script>
δεν λειτουργούν πάντα, οπότε θα χρειαστείτε μια διαφορετική μέθοδο για να εκτελέσετε JS (για παράδειγμα, καταχρώντας το <img
).
Επίσης, σημειώστε ότι σε μια κανονική εκμετάλλευση θα είστε σε θέση να δείτε/κατεβάσετε το δημιουργημένο pdf, οπότε θα μπορείτε να δείτε τα πάντα που γράφετε μέσω JS (χρησιμοποιώντας document.write()
για παράδειγμα). Αλλά, αν δεν μπορείτε να δείτε το δημιουργημένο PDF, πιθανότατα θα χρειαστεί να εξάγετε τις πληροφορίες κάνοντας web request σε εσάς (Blind).
Δημοφιλή εργαλεία δημιουργίας PDF
wkhtmltopdf είναι γνωστό για την ικανότητά του να μετατρέπει HTML και CSS σε έγγραφα PDF, χρησιμοποιώντας τη μηχανή απόδοσης WebKit. Αυτό το εργαλείο είναι διαθέσιμο ως ανοιχτού κώδικα εργαλείο γραμμής εντολών, καθιστώντας το προσβάσιμο για μια ευρεία γκάμα εφαρμογών.
TCPDF προσφέρει μια ισχυρή λύση εντός του οικοσυστήματος PHP για τη δημιουργία PDF. Είναι ικανό να χειρίζεται εικόνες, γραφικά και κρυπτογράφηση, επιδεικνύοντας την ευελιξία του για τη δημιουργία σύνθετων εγγράφων.
Για όσους εργάζονται σε περιβάλλον Node.js, το PDFKit παρουσιάζει μια βιώσιμη επιλογή. Επιτρέπει τη δημιουργία εγγράφων PDF απευθείας από HTML και CSS, παρέχοντας μια γέφυρα μεταξύ του διαδικτυακού περιεχομένου και των εκτυπώσιμων μορφών.
Οι προγραμματιστές Java μπορεί να προτιμούν το iText, μια βιβλιοθήκη που διευκολύνει όχι μόνο τη δημιουργία PDF αλλά υποστηρίζει επίσης προηγμένα χαρακτηριστικά όπως ψηφιακές υπογραφές και συμπλήρωση φορμών. Το εκτενές σύνολο χαρακτηριστικών του το καθιστά κατάλληλο για τη δημιουργία ασφαλών και διαδραστικών εγγράφων.
FPDF είναι μια άλλη βιβλιοθήκη PHP, διακριτή για την απλότητα και την ευχρηστία της. Είναι σχεδιασμένη για προγραμματιστές που αναζητούν μια απλή προσέγγιση στη δημιουργία PDF, χωρίς την ανάγκη εκτενών χαρακτηριστικών.
Payloads
Discovery
SVG
Οποιοδήποτε από τα προηγούμενα ή τα ακόλουθα payloads μπορεί να χρησιμοποιηθεί μέσα σε αυτό το SVG payload. Ένα iframe που έχει πρόσβαση στο υποτομέα Burpcollab και ένα άλλο που έχει πρόσβαση στο endpoint μεταδεδομένων παρατίθενται ως παραδείγματα.
Μπορείτε να βρείτε πολλά άλλα SVG payloads στο https://github.com/allanlw/svg-cheatsheet
Αποκάλυψη διαδρομής
Φόρτωση εξωτερικού script
Ο καλύτερος συμβατός τρόπος για να εκμεταλλευτείτε αυτήν την ευπάθεια είναι να την κακοποιήσετε ώστε να κάνετε το bot να φορτώσει ένα script που ελέγχετε τοπικά. Στη συνέχεια, θα μπορείτε να αλλάξετε το payload τοπικά και να κάνετε το bot να το φορτώνει με τον ίδιο κώδικα κάθε φορά.
Ανάγνωση τοπικού αρχείου / SSRF
Αλλάξτε το file:///etc/passwd
σε http://169.254.169.254/latest/user-data
για παράδειγμα για να δοκιμάσετε να αποκτήσετε πρόσβαση σε μια εξωτερική ιστοσελίδα (SSRF).
Εάν επιτρέπεται το SSRF, αλλά δεν μπορείτε να φτάσετε σε έναν ενδιαφέροντα τομέα ή IP, ελέγξτε αυτή τη σελίδα για πιθανά bypasses.
Καθυστέρηση Bot
Σάρωση Θυρών
Αυτή η ευπάθεια μπορεί να μετατραπεί πολύ εύκολα σε SSRF (καθώς μπορείτε να κάνετε το σενάριο να φορτώσει εξωτερικούς πόρους). Έτσι, απλώς προσπαθήστε να την εκμεταλλευτείτε (διαβάστε κάποια μεταδεδομένα;).
Attachments: PD4ML
Υπάρχουν μερικές μηχανές HTML 2 PDF που επιτρέπουν να καθορίσετε συνημμένα για το PDF, όπως το PD4ML. Μπορείτε να εκμεταλλευτείτε αυτή τη δυνατότητα για να συνημμένο οποιοδήποτε τοπικό αρχείο στο PDF. Για να ανοίξω το συνημμένο, άνοιξα το αρχείο με Firefox και διπλό κλικ στο σύμβολο του συνημμένου για να αποθηκεύσω το συνημμένο ως νέο αρχείο. Η καταγραφή της απάντησης PDF με το burp θα πρέπει επίσης να δείξει το συνημμένο σε καθαρό κείμενο μέσα στο PDF.
Αναφορές
Last updated