Pokaż wyniki od 1 do 9 z 9

Wątek: [SQL Injection] account.php

  1. #1
    Bugolog Vallheru'owski Awatar McFly
    Dołączył
    Feb 2008
    Posty
    414

    Domyślnie [SQL Injection] account.php

    1. Opis błędu
    Brak escape’owania przy $_POST[’ce’] i $_POST[’ne’].
    2. Zagrożenie
    Błąd umożliwiający atak SQL Injection.
    3. Rozwiązanie
    [OTWÓRZ]
    account.php
    [ZNAJDŹ]
    Kod php:
            $_POST['ne'] = strip_tags($_POST['ne']);
            
    $_POST['ce'] = strip_tags($_POST['ce']); 
    [ZAMIEŃ NA]
    Kod php:
            $_POST['ne'] = mysql_escape_string(strip_tags($_POST['ne']));
            
    $_POST['ce'] = mysql_escape_string(strip_tags($_POST['ce'])); 
    Ostatnio edytowane przez McFly ; 16-03-2010 o 18:23

  2. #2
    Zasłużony Awatar sazian
    Dołączył
    Jul 2008
    Posty
    1,721

    Domyślnie

    a dlaczego pg_ a nie mysql_ ??

  3. #3
    Bugolog Vallheru'owski Awatar McFly
    Dołączył
    Feb 2008
    Posty
    414

    Domyślnie

    o dzięki sazian, że zuważyłeś. pg jest do PostgreSQL'a.

  4. #4
    Zarejestrowany
    Dołączył
    Feb 2010
    Posty
    10

    Domyślnie

    Nawet bez escape’owania nie udało mi się użyć sql injection, chociaż pewnie zrobiłem to nieumiejętnie

  5. #5
    Bugolog Vallheru'owski Awatar McFly
    Dołączył
    Feb 2008
    Posty
    414

    Domyślnie

    powstawiaj sobie do emaila bez escapowania pazurki tzn. ' '

  6. #6
    Zarejestrowany
    Dołączył
    Nov 2007
    Posty
    115

    Domyślnie

    Te wszystkie bugi na kodzie 1.3 naprawiasz ?

  7. #7
    Bugolog Vallheru'owski Awatar McFly
    Dołączył
    Feb 2008
    Posty
    414

    Domyślnie

    Tak. Jak naprawię większość postaram się wydać czysty silnik vallheru, ale bez bugów.

  8. #8
    Zarejestrowany
    Dołączył
    Nov 2007
    Posty
    115

    Domyślnie

    A moglbys mi powiedziec czy tutaj mam cos wyescapowac ?

    Kod php:
    if (isset($_GET['step']) && $_GET['step'] == "ce"
        {
            if (empty(
    $_POST["ne"]) || empty($_POST['ce'])) 
            {
                
    error (EMPTY_FIELDS);
            }
            require_once(
    'includes/verifymail.php');
            if (
    MailVal($_POST['ne'], 2)) 
            {
                
    error(BAD_EMAIL);
            }       
            
    $query $db -> Execute("SELECT id FROM players WHERE email='".$_POST['ne']."'");
            
    $dupe $query -> RecordCount();
            
    $query -> Close();      
            if (
    $dupe 0
            {
                
    error (EMAIL_BLOCK);
            }
            
    $db -> Execute("UPDATE players SET email = '".$_POST['ne']."' WHERE email = '".$_POST['ce']."' AND id = '".$player -> id."'") or error (BAD_EMAIL);
            
    error (YOU_CHANGE." ".$_POST['ce']." ".ON." ".$_POST['ne'].". ".CLOSE_WINDOW);
        } 
    Bo tutaj nie ma tego co ty kazales znalezc.

  9. #9
    Bugolog Vallheru'owski Awatar McFly
    Dołączył
    Feb 2008
    Posty
    414

    Domyślnie

    te wszystkie poradniki sa do 1.3 vall, a tam oryginalnie jest tak:
    Kod php:
        /**
         * Change email
         */
        
    if (isset($_GET['step']) && $_GET['step'] == "ce"
        {
            if (empty(
    $_POST["ne"]) || empty($_POST['ce'])) 
            {
                
    error(EMPTY_FIELDS);
            }
            
    $_POST['ne'] = strip_tags($_POST['ne']);
            
    $_POST['ce'] = strip_tags($_POST['ce']);
            require_once(
    'includes/verifymail.php');
            if (
    MailVal($_POST['ne'], 2)) 
            {
                
    error(BAD_EMAIL);
            }       
            
    $query $db -> Execute("SELECT `id` FROM `players` WHERE `email`='".$_POST['ne']."'");    
            if (
    $query -> fields['id']) 
            {
                
    error(EMAIL_BLOCK);
            }
            
    $query -> Close();
            
    $intNumber substr(md5(uniqid(rand(), true)), 39);
            
    $strLink $gameadress."/index.php?step=newemail&code=".$intNumber."&email=".$_POST['ne'];
            
    $adress $_POST['ne'];
            
    $message MESSAGE_PART1.$gamename."\n".MESSAGE_PART2."\n".$strLink."\n".MESSAGE_PART3." ".$gamename."\n".$adminname;
            
    $subject MESSAGE_SUBJECT.$gamename;
            require_once(
    'mailer/mailerconfig.php');
            if (!
    $mail -> Send()) 
            {
                
    $smarty -> assign ("Error"MESSAGE_NOT_SEND." ".$mail -> ErrorInfo);
                
    $smarty -> display ('error.tpl');
                exit;
            }
            
    $db -> Execute("INSERT INTO `lost_pass` (`number`, `email`, `id`, `newemail`) VALUES('".$intNumber."', '".$_POST['ce']."', ".$player -> id.", '".$_POST['ne']."')") or $db -> ErrorMsg();
            
    error(YOU_CHANGE);
        } 

Informacje o wątku

Użytkownicy przeglądający ten wątek

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. [SQL Injection] addupdate.php
    Przez McFly w dziale Bugologia
    Odpowiedzi: 0
    Ostatni post / autor: 17-05-2010, 20:46
  2. [SQL Injection] tribearmor.php
    Przez McFly w dziale Bugologia
    Odpowiedzi: 0
    Ostatni post / autor: 25-03-2010, 20:38
  3. [SQL Injection] stats.php
    Przez McFly w dziale Bugologia
    Odpowiedzi: 0
    Ostatni post / autor: 25-03-2010, 20:07
  4. [Inne] account.php
    Przez McFly w dziale Bugologia
    Odpowiedzi: 0
    Ostatni post / autor: 16-03-2010, 18:42
  5. [SQL Injection] membelist.php
    Przez McFly w dziale Bugologia
    Odpowiedzi: 4
    Ostatni post / autor: 16-03-2010, 15:43

Zakładki

Uprawnienia umieszczania postów

  • 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
  •