LFI2RCE via PHP_SESSION_UPLOAD_PROGRESS

AWS hacklemeyi sıfırdan kahraman olmak için öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'i desteklemenin diğer yolları:

Temel Bilgiler

Eğer bir Yerel Dosya Dahil Etme (LFI) bulduysanız ve bir oturumunuz yoksa ve session.auto_start Off ise. Eğer session.upload_progress.enabled On ise ve PHP_SESSION_UPLOAD_PROGRESS'u multipart POST verilerinde sağlarsanız, PHP sizin için oturumu etkinleştirecektir.

$ curl http://127.0.0.1/ -H 'Cookie: PHPSESSID=iamorange'
$ ls -a /var/lib/php/sessions/
. ..
$ curl http://127.0.0.1/ -H 'Cookie: PHPSESSID=iamorange' -d 'PHP_SESSION_UPLOAD_PROGRESS=blahblahblah'
$ ls -a /var/lib/php/sessions/
. ..
$ curl http://127.0.0.1/ -H 'Cookie: PHPSESSID=iamorange' -F 'PHP_SESSION_UPLOAD_PROGRESS=blahblahblah'  -F 'file=@/etc/passwd'
$ ls -a /var/lib/php/sessions/
. .. sess_iamorange

In the last example the session will contain the string blahblahblah

PHP_SESSION_UPLOAD_PROGRESS ile oturum içindeki verileri kontrol edebilirsiniz, bu nedenle oturum dosyanızı dahil ederseniz kontrol ettiğiniz bir bölümü (örneğin bir php kabuk kodu) dahil edebilirsiniz.

İnternet'teki çoğu öğretici, hata ayıklama amacıyla session.upload_progress.cleanupOff olarak ayarlamanızı önerir. Ancak PHP'nin varsayılan session.upload_progress.cleanup değeri hala On dur. Bu, oturumda yükleme ilerlemenizin mümkün olan en kısa sürede temizleneceği anlamına gelir. Bu yüzden bu bir Yarış Koşulu olacaktır.

CTF

Bu tekniğin yorumlandığı orijinal CTF 'de, Yarış Koşulunu sömürmek yeterli değildi, yüklenen içeriğin ayrıca @<?php dizesiyle başlaması gerekiyordu.

session.upload_progress.prefix'in varsayılan ayarı nedeniyle, OTURUM dosyamız bir rahatsız edici önekle başlayacak upload_progress_ Örneğin: upload_progress_controlledcontentbyattacker

Başlangıç öneki kaldırmak için hileyi payload'ı 3 kez base64 kodlamak ve ardından convert.base64-decode filtreleri aracılığıyla kodlamaktı, çünkü base64 kod çözme PHP, garip karakterleri kaldırır, bu yüzden 3 kez sonra sadece saldırgan tarafından gönderilen payload kalır (ve ardından saldırgan başlangıç kısmını kontrol edebilir).

Daha fazla bilgi için orijinal yazıya https://blog.orange.tw/2018/10/ ve son saldırıya https://github.com/orangetw/My-CTF-Web-Challenges/blob/master/hitcon-ctf-2018/one-line-php-challenge/exp_for_php.py adresinden ulaşabilirsiniz. Başka bir yazıya https://spyclub.tech/2018/12/21/one-line-and-return-of-one-line-php-writeup/ ulaşabilirsiniz.

AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated