Pokaż wyniki 1 do 10 z 10

Temat: Czy w tym skrypcie jest jakiś błąd?

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Zarejestrowany
    Jul 2008
    Skąd
    Za twoimi plecami
    Postów
    351

    Lightbulb Czy w tym skrypcie jest jakiś błąd?

    Już dłuższy czas siedzę nad tym skryptem i szukam jakiegoś błędu. Coś mi mówi, że jakiś tam jest, tylko go znaleźć nie mogę Może wy coś znajdziecie.
    Oto plik admin.php:
    Kod:
    <?
    
    
    
      require("config.inc.php");
      
    
      if (isset($_REQUEST['poprawny_login']) || isset($_REQUEST['poprawne_haslo'])) {
      	die ('<img src="http://www.programuj.com/moje/comnews/pozdrawiam.gif">');
      }
        import_request_variables("GP","");
    
      if ($haslo==$poprawne_haslo && $login==$poprawny_login)
    
      {
    
       include("head.inc");
    
    //różne nieistotne dla nas instrukcje :)
    
    
    ?>
    Tu powinienem wytłumaczyć dlaczego autor skryptu wstawił fragment: if (isset($_REQUEST['poprawny_login']) || isset($_REQUEST['poprawne_haslo'])) {
    die ('<img src="http://www.programuj.com/moje/comnews/pozdrawiam.gif">');
    Otóż w starszej wersji tego nie było, a jakie były tego konsekwencje można zobaczyć: http://hack.pl/forum/thread4268,comboys_news_17.html
    Czy można jakoś to ominąć? Może gdzie indziej znajdziecie błąd.
    login.php:
    Kod:
    <?
    
     require("config.inc.php");
    
     import_request_variables("GPC","");
    
     if ($login==$poprawny_login && $haslo==$poprawne_haslo)
    
     {
    
      setcookie("haslo",$haslo);
    
      setcookie("login",$login);
    
      Header("Location: admin.php");
    
     } else
    
     {
    
      include("head.inc");
    
      echo("<BR><BR><CENTER><FONT color=red><B>Błędy login i/lub hasło</B> !</FONT><BR><BR><BR>\n");
    
      echo("<A href='index.php'>Powrót do strony logowania</A></CENTER>");
    
    
    
      include("stopka.inc");
    
     }
    
    
    
    ?>
    Oraz index.php:
    Kod:
     <? include("head.inc"); ?>
    
     <BR><BR>
    
     <CENTER>
    
     Aby mieć możliwość administracji systemem newsów, musisz się zalogować:<BR><BR>
    
     <FORM action="login.php" method="post">
    
     <TABLE border=0 >
    
     <TR><TD>Login: </TD><TD><INPUT type=text name=login></TD></TR>
    
     <TR><TD>Hasło: </TD><TD><INPUT type=password name=haslo></TD></TR>
    
     <TR><TD colspan=2 align=center><BR><INPUT type=submit value="       Zaloguj się       "></TD></TR>
    
     </TABLE>
    
     </CENTER>
    
     <? include("stopka.inc"); ?>
    I to by było na tyle

  2. #2

    Domyślnie

    Kod:
    if (isset($_REQUEST['poprawny_login']) || isset($_REQUEST['poprawne_haslo'])){
      	die ('<img src="http://www.programuj.com/moje/comnews/pozdrawiam.gif">');
      }
    Warunek sprawdza, czy są ustawione 'poprawny_login' LUB 'poprawne_haslo'. Ponieważ są (bo ustawiasz je wcześniej w login.php jako ciasteczka, a $_REQUEST odpowiada tablicom $_GET, $_POST i $_COOKIE), dla poprawnego hasla LUB loginu warunek będzie spelniony, więc wykona się die() z tym gif-em.

    Poprawnie powinno więc być:
    Kod:
    if ( !(isset($_REQUEST['poprawny_login']))  || !(isset($_REQUEST['poprawne_haslo'])) )
    - czyli przy nie spełnieniu jednego z warunków pojawia sie ten gif "pozdrawiam.gif" , bo zakładam, że o to Ci chodziło?
    "...i stało się! Linie telefoniczne otworzyły mi bramę do świata
    upajającego jak heroina pulsująca w żyłach ćpuna! Elektronicznym
    sygnałem przekraczam wrota szukając ucieczki od codzienności,
    głupoty i niesprawiedliwości... i znajduję podobnych sobie."

  3. #3
    Zarejestrowany
    Jul 2008
    Skąd
    Za twoimi plecami
    Postów
    351

    Domyślnie

    Nie, nie nie Widzę, że źle pytanie sformuławem. Ten skrypt działa bez twoich poprawek, blooregard. Mi chodziło o błąd w sensie błąd w zabezpieczeniach. Czy macie jakieś pomysły jak obejść te zabezpieczenia

  4. #4
    Zarejestrowany
    May 2008
    Postów
    534

    Domyślnie

    Już dłuższy czas siedzę nad tym skryptem i szukam jakiegoś błędu.
    Caly skrypt to jedna wielka pomylka. Powinienes zapytac: jak to zrobic, aby bylo dobrze.

  5. #5

    Domyślnie

    Aha. No to faktycznie źle sformułowałeś.

    Mnie udało się złamać to w ten sposób:
    Kod:
    login.php?poprawny_login=a&login=a&poprawne_haslo=a&haslo=a
    Spowodowało to, że w pliku login.php sprawdzenie warunku:
    Kod:
     if ($login==$poprawny_login && $haslo==$poprawne_haslo)
    
     {
    było prawdziwe, bo (a==a && a==a).
    A pod każdą z tych zmiennych można podstawic dowolną wartość poprzez GET-a, bo wcześniej uzyłeś f-kcji
    Kod:
     import_request_variables("GP","");
    , co jest niemal równoznaczne z użyciem register_globals.

    Nie wiem, co jest u Ciebie w pliku config.inc.php i jak odczytujesz ten prawidlowy_login i prawidlowe_haslo, ale to raczej chyba nie ma znaczenia w tym przypadku.
    "...i stało się! Linie telefoniczne otworzyły mi bramę do świata
    upajającego jak heroina pulsująca w żyłach ćpuna! Elektronicznym
    sygnałem przekraczam wrota szukając ucieczki od codzienności,
    głupoty i niesprawiedliwości... i znajduję podobnych sobie."

  6. #6
    Zarejestrowany
    Jul 2008
    Skąd
    Za twoimi plecami
    Postów
    351

    Domyślnie

    To login.php?poprawny_login=a&login=a&poprawne_haslo= a&haslo=a też wymyśliłem, ale nie działa Po wpisaniu wyświetla się "nieprawidłowy login i/lub hasło", więc to nie to :P

Podobne wątki

  1. blad w skrypcie, funkcja str_replace()
    By gogulas in forum PHP/CGI/ASP/JSP/J2EE
    Odpowiedzi: 1
    Autor: 03-22-2008, 21:37
  2. Czy wiecie co to jest??
    By matek_112 in forum Newbie - dla początkujących!
    Odpowiedzi: 3
    Autor: 10-18-2007, 18:03
  3. Odpowiedzi: 2
    Autor: 05-12-2007, 14:27
  4. czy jest różnica?
    By markossx in forum PHP/CGI/ASP/JSP/J2EE
    Odpowiedzi: 14
    Autor: 04-17-2007, 11:02
  5. md5 czy książka ma błąd ?
    By gargamel in forum Kryptografia
    Odpowiedzi: 2
    Autor: 01-24-2007, 16:40

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