5.1 KiB
PHP_SESSION_UPLOAD_PROGRESS ile LFI2RCE
AWS hacklemeyi sıfırdan kahraman olmak için öğrenin htARTE (HackTricks AWS Red Team Expert)!
HackTricks'i desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerini edinin
- Özel NFT'lerden oluşan koleksiyonumuz The PEASS Family'i keşfedin
- 💬 Discord grubuna veya telegram grubuna katılın veya bizi Twitter 🐦 @hacktricks_live'da takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.
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.
{% hint style="info" %}
İnternet'teki çoğu öğretici, hata ayıklama amacıyla session.upload_progress.cleanup
'ı Off
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.
{% endhint %}
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ı:
- Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerini edinin
- Özel NFT'lerden oluşan koleksiyonumuz olan The PEASS Family'yi keşfedin
- 💬 Discord grubuna veya telegram grubuna katılın veya bizi Twitter 🐦 @hacktricks_live'ı takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github reposuna PR göndererek paylaşın.