LFI2RCE via PHP_SESSION_UPLOAD_PROGRESS
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Αν βρείτε μια Τοπική Συμπερίληψη Αρχείου ακόμα και αν δεν έχετε συνεδρία και session.auto_start
είναι Off
. Αν session.upload_progress.enabled
είναι On
και παρέχετε το PHP_SESSION_UPLOAD_PROGRESS
στα multipart POST δεδομένα, το PHP θα ενεργοποιήσει τη συνεδρία για εσάς.
Σημειώστε ότι με το PHP_SESSION_UPLOAD_PROGRESS
μπορείτε να ελέγξετε δεδομένα μέσα στη συνεδρία, οπότε αν συμπεριλάβετε το αρχείο συνεδρίας σας, μπορείτε να συμπεριλάβετε ένα μέρος που ελέγχετε (ένα php shellcode για παράδειγμα).
Αν και οι περισσότερες οδηγίες στο Διαδίκτυο σας προτείνουν να ορίσετε το session.upload_progress.cleanup
σε Off
για σκοπούς αποσφαλμάτωσης. Η προεπιλεγμένη ρύθμιση session.upload_progress.cleanup
στο PHP είναι ακόμα On
. Αυτό σημαίνει ότι η πρόοδος της μεταφόρτωσης σας στη συνεδρία θα καθαριστεί το συντομότερο δυνατό. Έτσι, αυτό θα είναι Race Condition.
Στο αρχικό CTF όπου σχολιάζεται αυτή η τεχνική, δεν ήταν αρκετό να εκμεταλλευτείτε το Race Condition, αλλά το περιεχόμενο που φορτώθηκε έπρεπε επίσης να ξεκινά με τη συμβολοσειρά @<?php
.
Λόγω της προεπιλεγμένης ρύθμισης του session.upload_progress.prefix
, το αρχείο ΣΥΝΕΔΡΙΑΣ μας θα ξεκινά με ένα ενοχλητικό πρόθεμα upload_progress_
Όπως: upload_progress_controlledcontentbyattacker
Το κόλπο για να αφαιρέσετε το αρχικό πρόθεμα ήταν να base64encode το payload 3 φορές και στη συνέχεια να το αποκωδικοποιήσετε μέσω φίλτρων convert.base64-decode
, αυτό συμβαίνει επειδή όταν αποκωδικοποιείτε το base64, το PHP θα αφαιρέσει τους περίεργους χαρακτήρες, οπότε μετά από 3 φορές μόνο το payload που στάλθηκε από τον επιτιθέμενο θα παραμείνει (και στη συνέχεια ο επιτιθέμενος μπορεί να ελέγξει το αρχικό μέρος).
Περισσότερες πληροφορίες στην αρχική ανάρτηση https://blog.orange.tw/2018/10/ και τελική εκμετάλλευση https://github.com/orangetw/My-CTF-Web-Challenges/blob/master/hitcon-ctf-2018/one-line-php-challenge/exp_for_php.py Μια άλλη ανάρτηση στο https://spyclub.tech/2018/12/21/one-line-and-return-of-one-line-php-writeup/
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)