phar:// deserialization
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)
Bug bounty tip: sign up for Intigriti, a premium bug bounty platform created by hackers, for hackers! Join us at https://go.intigriti.com/hacktricks today, and start earning bounties up to $100,000!
Τα αρχεία Phar (PHP Archive) περιέχουν μεταδεδομένα σε σειριοποιημένη μορφή, έτσι, όταν αναλυθούν, αυτά τα μεταδεδομένα αποσειριοποιούνται και μπορείτε να προσπαθήσετε να εκμεταλλευτείτε μια ευπάθεια αποσειριοποίησης μέσα στον κώδικα PHP.
Το καλύτερο με αυτή τη χαρακτηριστική είναι ότι αυτή η αποσειριοποίηση θα συμβεί ακόμη και χρησιμοποιώντας συναρτήσεις PHP που δεν εκτελούν κώδικα PHP όπως file_get_contents(), fopen(), file() ή file_exists(), md5_file(), filemtime() ή filesize().
Έτσι, φανταστείτε μια κατάσταση όπου μπορείτε να κάνετε έναν ιστότοπο PHP να πάρει το μέγεθος ενός αυθαίρετου αρχείου χρησιμοποιώντας το πρωτόκολλο phar://
, και μέσα στον κώδικα βρίσκετε μια κλάση παρόμοια με την εξής:
Μπορείτε να δημιουργήσετε ένα phar αρχείο που όταν φορτωθεί θα καταχραστεί αυτή την κλάση για να εκτελέσει αυθαίρετες εντολές με κάτι σαν:
Σημειώστε πώς τα μαγικά bytes του JPG (\xff\xd8\xff
) προστίθενται στην αρχή του αρχείου phar για να παρακαμφθούν οι πιθανές περιορισμοί ανέβασμα αρχείων.
Συγκεντρώστε το αρχείο test.phar
με:
Και εκτελέστε την εντολή whoami
εκμεταλλευόμενοι τον ευάλωτο κώδικα με:
Συμβουλή για bug bounty: εγγραφείτε στο Intigriti, μια premium πλατφόρμα bug bounty που δημιουργήθηκε από hackers, για hackers! Ελάτε μαζί μας στο https://go.intigriti.com/hacktricks σήμερα, και αρχίστε να κερδίζετε βραβεία έως $100,000!
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)