Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Upad arapskih hakera i zastita php-a

[es] :: PHP :: Upad arapskih hakera i zastita php-a

[ Pregleda: 2689 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

booo
beograd

Član broj: 145864
Poruke: 53
79.101.242.*



Profil

icon Upad arapskih hakera i zastita php-a10.01.2009. u 01:13 - pre 186 meseci
Pre nakoliko dana sam imao upad na moj sajt od strane arapskih hakera... Sajt je unisten a to sve zbog nekih propusta u php upload codu... Iz flasha sam pozivao php koji je uploadovao fajl na moj server a php kod izgleda ovako:

Code:

<?
function parse_dir( $folder,$fileFilter,$folderFilter,$showPath ){
    
    if( is_array( $folderFilter ) && in_array( $folder,$folderFilter ) ) return;
    
    $dir         = @opendir( $folder );    
    $fname         = array_pop( explode( "/",$folder) );
    $fname         = empty( $fname ) ? "node" : str_replace( " ","_",$fname );
    $path_parts = pathinfo(realpath( $folder ));
    $path         = ( $showPath ) ? " fullpath=\"".realpath( $folder )."\"" : "";
    $filecount     = 0;
    $foldercount = 0;
    $xml         = "";
    
    while ( false != ( $item = @readdir( $dir ) ) ) {        
        if( $item == "." || $item == ".." ) continue;
        if( is_dir( "$folder/$item" ) ){
            $xml.= parse_dir( "$folder/$item",$fileFilter,$folderFilter,$showPath );
            $foldercount++;
            continue;
        }        
        $ftype = array_pop( explode( ".", strtolower( $item ) ) );
        $goodfile = is_array( $fileFilter ) ? !in_array( "$folder/$item",$fileFilter ) : true;
        if ( $goodfile ) {            
            $xml.= "<node label='".$item."'/>";
            $filecount++;            
        }
    }    
    
    $xml = "<node label=\"".strToUpper($fname)."\" folders=\"$foldercount\" files=\"$filecount\"$path>$xml</node>";    
    return $xml;

}

// GET FOLDER INFO:
$basedir = "./"; //current dir as default

$showFullPath = true;

// WRITE OUT XML:
header( 'Cache-Control: no-cache' );
header( 'Pragma: no-cache' );
header( 'User-Agent: XS3_XMLFILEStructure_Script' );
header( 'content-type: text/xml' );
die( parse_dir( $basedir,$excludeFiles,$excludeFolders,$showFullPath ) );
?>


Zna li neko gde sam napravio propust i kako zastititi ovaj php?


[Ovu poruku je menjao booo dana 10.01.2009. u 02:30 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.beotel.net.



+19 Profil

icon Re: Upad arapskih hakera i zastita php-a10.01.2009. u 10:13 - pre 186 meseci
Ovo nije "upload kod", već skript koji ti prikazuje sadržaj nekog direktorijuma što je vrlo interesantno zlonamernim posetiocima. Pogotovo što bi kad unese "../../" kao prvi parametar možda mogao da ugrozi sve sajtove na serveru.
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

iizuzetan

Član broj: 186478
Poruke: 375
85.222.179.*



+16 Profil

icon Re: Upad arapskih hakera i zastita php-a11.01.2009. u 07:13 - pre 186 meseci
Kolko ja znam unos fajlova na PHP sajt se vrsi preko HTML forme, i to vrlo bezbedno. Definisi tacno sta ti znaci to 'unisten sajt'? Kako to neznas gde ti je bezbednosna rupa a znas da ti je bas taj COD napravio probleme? Mnogo malo informacija si dao za krupan problem. ""Pogotovo što bi kad unese "../../" kao prvi parametar možda mogao da ugrozi sve sajtove na serveru"" - ha ha e kad bi to bilo moguce onda bi svaki sajt morao da ima svoj sopstveni server ha ha
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4391
77.46.234.*

Sajt: https://avramovic.info


+46 Profil

icon Re: Upad arapskih hakera i zastita php-a11.01.2009. u 10:08 - pre 186 meseci
iizuzetan, molim te da se malo informišeš pre nego što postaviš neku (u ovom slučaju netačnu) informaciju na forum. Istina je da se fajlovi šalju preko HTML forme, ali to je jako daleko od bezbednog. U ovoj poruci je mVeliki ostavio PDF fajl u kojem je detaljno objašnjeno kako treba kontrolisati upload fajlova i kako se i sa (ne tako) običnom GIF slikom može hakovati sajt ako se ne odrade potrebne provere.

Citat:
""Pogotovo što bi kad unese "../../" kao prvi parametar možda mogao da ugrozi sve sajtove na serveru"" - ha ha e kad bi to bilo moguce onda bi svaki sajt morao da ima svoj sopstveni server ha ha


Na ogromnoj većini shared hostinga PHP se vrti pod istim korisnikom za sve sajtove, tako da ima ravnopravan pristup svim fajlovima na serveru, tako da je ovo sa unosom ../../ putanje vrlo moguće i zato treba dosta pažnje obratiti i na to. Jedan drugar je uspeo sa servera b92.net sajta da skine fajl /etc/passwd preko skripte koja je forsirala download fajla koji se prosledi GET parametrom. Naravno - nije urađena nikakva provera i apsolutno svi fajlovi su mogli da budu skinuti preko te skripte, samo ako znaš putanju fajla na serveru. Naravno, ova skripta je sada zakripljena (zato uostalom i objavljujem ovaj propust)
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

iizuzetan

Član broj: 186478
Poruke: 375
85.222.179.*



+16 Profil

icon Re: Upad arapskih hakera i zastita php-a11.01.2009. u 18:50 - pre 186 meseci
Kljucna globalna ali bukvalno kljucna za zastitu od unosa velicine fajlova koje nismo predvideli je $ _FILES [ 'Userfile'] [ 'size'] a mnogi je preskacu. Ako se sve odradi kako treba upload skripte mogu biti bezbedne. A to u vezi shared hostinga je tacno i postoje koliko toliko zakrpe :) http://phpsec.org/projects/guide/sr/5.html . Najbolje resenje je da se ima privatan host to je tacno
 
Odgovor na temu

booo
beograd

Član broj: 145864
Poruke: 53
93.86.178.*



Profil

icon Re: Upad arapskih hakera i zastita php-a12.01.2009. u 00:49 - pre 186 meseci
A da ovo je bio php kod za prikaz a za upload je bio:
Code:

<?php
   if(!is_dir("./files")) mkdir("./files", 0755); 
   move_uploaded_file($_FILES['Filedata']['tmp_name'], "./files/".$_FILES['Filedata']['name']);
   chmod("./files/".$_FILES['Filedata']['name'], 0777);
?>

Ne znam koliko je ovo bezbedan kod...
Hakeri su uspeli da umesto naslovne strane stave svoju stranu koju sam stavio u prilogu i takodje u jednom folderu je bio Abbey logOn :)
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Upad arapskih hakera i zastita php-a12.01.2009. u 02:11 - pre 186 meseci
Ovaj poslednji kod omogućava upis proizvoljne datoteke i van "files/" jer ako se kao ime prosledi "../index.php", datoteka će biti upisana kao "./index.php" umesto kao "files/index.php", ako to dozvole omogućavaju.

Moraš da pozoveš basename() nad $_FILES['Filedata']['name'], a preporuka ti je da središ i dozvole (chmod nad datotekom je ovde suvišan, a korenski direktorijum ne bi smeo da dozvoli upis korisniku pod kojim se izvršava PHP kod).

Naravno, ni to neće biti dovoljno jer šta hakera sprečava da u files/ smesti PHP skriptu koju će onda da pozove i pobriše ti sve, izmeni datoteke i slično. Zato moraš da proveriš i ekstenziju/sadržaj, odnosno zabraniš izvršavanje datoteka iz direktorijuma "files/".

Kao što ti je već odgovoreno, ni onaj prvi kod nije bezazlen. Idealan je za krađu lozinki od skripti, baza, i traženje drugih propusta po kodu pošto dozvoljava preuzimanje bilo koje datoteke koju PHP može da pročita sa servera.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

booo
beograd

Član broj: 145864
Poruke: 53
93.86.221.*



Profil

icon Re: Upad arapskih hakera i zastita php-a12.01.2009. u 13:04 - pre 186 meseci
A zasto ne bih stvio username i password koje cu da predam php-u preko get ili post metoda? Tako niko nece mocu nista da radi bez username-a i password-a...
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.beotel.net.



+19 Profil

icon Re: Upad arapskih hakera i zastita php-a12.01.2009. u 17:28 - pre 186 meseci
Može i to, ali je bolja ideja problem rešavati na njegovom izvoru.

Dakle, prvo u skriptama pregledaj adresu tako da ako negde detektuješ ".." jednostavno iskoči iz skripte.
Kod druge skripte obavezno treba i proveriti tip datoteke.
Inače sve to imaš u onom PDFu koji smo ti preporučili.
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

pesal
beograd

Član broj: 206206
Poruke: 12
93.86.1.*



Profil

icon Re: Upad arapskih hakera i zastita php-a16.01.2009. u 22:59 - pre 186 meseci
a da ti neko nije slucajno uploadovao neki php fajl i onda ga jednostavno pokrenuo kroz browser?
 
Odgovor na temu

[es] :: PHP :: Upad arapskih hakera i zastita php-a

[ Pregleda: 2689 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.