LFI & RFI Ofansif ve Defansif Anlatım

Pwdec

Kıdemli Üye
28 Haz 2016
4,606
148
/etc/passwd
Linkler
VM Link : https://www.vulnhub.com/entry/pentester-lab-web-for-pentester,71/
Github : https://github.com/D35m0nd142/LFISuite


Konular​
:
» Manuel Lfi Exploit
» Auto Lfi Exploit
» Manuel Rfi Exploit
» Auto Rfi Exploit
» Lfi Defans
» Rfi Defans​


4dKDtQ.png



Makineyi içeri aktar dedik ve kaliyle birlikte bridged seçtik. Makinede ifconfig yazarak veya netdiscover -i eth0 yazarak ip adresini öğrenebiliriz.Size tavsiyem /var/www/ klasörüne gidin ve açıklı dosyaları inceleyin kodlama dilleri bilmeniz burada işe yarayacak oradaki kodları okuyacaksınız ve yanlışı bulacaksınız.



Eğer web for pentester a domain yönlendirme yapmak istersek nano /etc/hosts yaparak (ctrl + x yapıp onaylamayı unutmayın) ve aşağıdaki gibi
ifconfig ile bulduğumuz ip nin yanına istediğiniz domaini yazabilirsiniz isterseniz fbi.gov yazın :))




Yönlendirme başarılı.





Manuel LFI Exploit :
[ame]https://www.youtube.com/watch?v=aAkWBE4D2G8[/ame]

Otomatik LFI Exploit / Shell Alma :
[ame]https://www.youtube.com/watch?v=MtGQ_seoA84[/ame]

Manuel RFI Exploit :
[ame]https://www.youtube.com/watch?v=-f20YV9jJ3k&feature=youtu.be[/ame]

Otomatik RFI Exploit / Shell Alma :
[ame]https://www.youtube.com/watch?v=CVi_we8Dm8o[/ame]


4dKDtQ.png




Öncelikle lfi ve rfi için php ile lab gibi bişey yapalım :)


Header.php
Kod:
<?php header("X-XSS-Protection: 0") ?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <**** charset="utf-8">
    <title>THT / Hakyiyenhacky3r</title>
    <**** name="viewport" content="width=device-width, initial-scale=1.0">


  </head>

  <body>

    <div class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </a>
          <a class="brand" href="https://turkhackteam.org/">turkhackteam.org</a>
          <div class="nav-collapse collapse">
            <ul class="nav">
              <li class="active"><a href="/">Home</a></li>
            </ul>
          </div><!--/.nav-collapse -->
        </div>
      </div>
    </div>

    <div class="container">

Footer.php
Kod:
      <footer>
        <p>© Hakyiyenhacky3r</p>
      </footer>

    </div> <!-- /container -->


  </body>
</html>

intro.php
Kod:
THT / TurkHackTeam

lfi.php
Kod:
<?php require_once 'header.php'; ?>


<?php

	if ($_GET["page"]) {
		include($_GET["page"]);

	} 



?>

<?php require_once 'footer.php'; ?>

rfi.php
Kod:
<?php require_once 'header.php'; ?>

<?php
	if ($_GET["page"]) {
    $file = $_GET["page"].".php";
    
    $file = preg_replace('/\x00.*/',"",$file);
		include($file);

	} 



?>

<?php require_once 'footer.php'; ?>


4dKDtQ.png


LFI den başlayalım.
http://localhost/fileincl/lfi.php?page=intro.php
localhost a kurdugunuzu varsayarak böyle bi url ye gideceksiniz ofansifde anlattığımı denerseniz eğer açığı göreceksiniz.
Evet defans konusunda
çok kısa bi anlatım yapacağım anlayacağınız dilden php de variable yani değişkenler vardır bunları tanımlamazsanız eğer böyle açıklar çıkabilir attığım kodlarda page değişkeni tanımlanmamış eğer siz
Kod:
<?php require_once 'header.php'; ?>


<?php


	if ($_GET["page"]) {
		include($_GET["intro.php"]);

	} 



?>

<?php require_once 'footer.php'; ?>'

böyle değiştirirseniz lfi açığı kullanılmaz hale gelecektir. İşte bu kadar basit aslında defans olayı :)
include($_GET["page"]); -- include($_GET["intro.php"]);
sadece bu değişimi yaptık yani page e onun gerçek değerini yaptık.

RFI den devam ediyoruz.
http://localhost/fileincl/rfi.php?page=intro.php
yeniden localhosta kurdugunuzu varsayıyorum bu linke gittiniz öncelikle rfi deneyin bakalım var mı evet var :) Şimdi onu kaldıralım.
Aynı şekilde page yerine intro yaparsanız lfi kullanılamayacaktır.

$file = $_GET["page"].".php"; -- $file = $_GET["intro"].".php";

4dKDtQ.png





Sorularınız olursa buraya ekleyeceğim dostlar.

Soru 1 : RFI ve LFI Arasındaki Fark Nedir ?
Cevap 1 : Remote File Include (RFI) ve Local File Include (LFI) arasındaki fark adlarından da anlaşılacağı üzere local yerel yani sistem içinde exploit edilebilir rfi ise dışarıdan dosya çağırarak exploit ettik yani sömürdük.


Ek Kaynaklar :
Shell Nasıl Alınır : https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/File Inclusion
Kodlari İnceleyin.
https://www.exploit-db.com/docs/turkish/24628-[turkish]---local-file-inclusion.pdf
 
Moderatör tarafında düzenlendi:

Slaughter 9

ANKA ONURSAL ÜYE
1 Şub 2015
3,416
12
Turkey
Cevap: / / LFI ve RFI Ofansif ve Defansif Anlayalım \ \

Ellerine sağlık dostum, içerik yönüyle başarılı buldum ancak konu düzenine daha fazla özen göstermeni tavsiye ediyorum. :)
 

GECEGEZEN

Saldırı Timleri Danışmanı
13 Şub 2016
2,518
1,343
Cevap: / / LFI & RFI Ofansif ve Defansif Anlayalım \ \

Ellerine sağlık başarılı içerik.
 
Ü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.