De beveiliging

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marco

Marco

02/12/2007 18:08:00
Quote Anchor link
Als er mensen zin en tijd hebben, heb ik een login-systeem die jullie mogen pogen te kraken. De site is bij mij thuis gehost, er zullen geen boze hosts op jullie af komen.

Probeer wat je ook kunt bedenken, zolang je mij verteld hoe je het systeem hebt kunnen kraken.

http://maestro.themadman.nl
 
PHP hulp

PHP hulp

22/11/2024 07:37:21
 
Nicoow Unknown

Nicoow Unknown

02/12/2007 19:00:00
Quote Anchor link
sql injecties lukken i.i.g. niet,
ik ga nog even verder kloten
 
Marco

Marco

02/12/2007 22:49:00
Quote Anchor link
Houd ons op de hoogte!
 
Arend a

Arend a

03/12/2007 00:41:00
Quote Anchor link
Het is misschien verstandiger om gewoon je code te plaatsen. Dan is het veel eenvoudiger en sneller te zeggen waar je zwakke punten liggen dan het van buitenaf te proberen. Ik ga geen uren besteden aan het proberen te kraken van jouw systeem, wat een kwaadwillend persoon misschien wel wil.

Ook is het zo dat de meeste problemen niet zozeer in het inlog systeem zitten, dwz: autenticate, dus: "wie ben je?" maar in het systeem daarachter, de authorisatie "wat mag je?". Kortom, wil je serieuze antwoorden raad ik je aan je code te plaatsen.

Een heel reeks van veiligheidsfouten, lekken of zwaktes liggen buiten de scope van het inlogschermpje wat je ons vraagt te kraken.
 
Marco

Marco

03/12/2007 15:43:00
Quote Anchor link
De login functie ziet er zo uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public function mstro_login()
    {    
        $this->mstro_connect();
        
        if($_POST['username'] != '' && $_POST['password'] != '')
            {
                session_regenerate_id();
                $username = mysql_real_escape_string($_POST['username']);
                $password = md5(mysql_real_escape_string($_POST['password']));

                $query = mysql_query('SELECT usr_id, usr_name, usr_active, usr_rank, usr_last, usr_url FROM mstro_users WHERE usr_name = "'.$username.'" AND usr_pass = "'.$password.'" AND usr_active = "1"');

                if(mysql_num_rows($query) == "1")
                    {
                        $user = mysql_fetch_assoc($query);
                        if($user['usr_active'] == 1)
                            {
                                $_SESSION['USER_ID'] = $user['usr_id'];
                                $_SESSION['USERNAME'] = $user['usr_name'];
                                $_SESSION['LASTVISIT'] = $user['usr_last'];
                                $_SESSION['LEVEL_ACCESS'] = $user['usr_rank'];
                                $_SESSION['LOGGED'] = TRUE;
                                $time = time() + 300;

                                mysql_query("UPDATE mstro_users SET usr_last = '".$_SERVER['REMOTE_ADDR']."', usr_time = '$time' WHERE usr_name = '".$user['usr_name']."'");

                                header("Location: $user[usr_url]");
                            }
                        else
                            {
                                $this->mmsg = $this->unactive;
                            }
                    }
                else
                    {
                        $this->mmsg = "Username/Password incorrect";
                    }
            }
    
 
Frank -

Frank -

03/12/2007 15:50:00
Quote Anchor link
Ik zie mogelijkheden met sessionstealing, er wordt nergens een verband gelegd tussen een ip-adres, webbrowser en de ingelogde user.

Verder doe je niks aan foutafhandeling en gebruik je hele foute datatypes voor datums en tijden.

Ps. escapen op een wachtwoord die je met md5 gaat hashen is niet nodig, de md5-hash kan onmogelijk quotes e.d. bevatten.
 
Marco

Marco

03/12/2007 15:57:00
Quote Anchor link
Tot nu toe is er iid nog geen controle van ip-adres, webbrowser en user, maar dat komt er nog in. Over het hashen, is het bij een md5 niet nodig om een escape_string toe te passen?
 
Frank -

Frank -

03/12/2007 16:04:00
Quote Anchor link
Nee, een md5-hash bestaat uit hexadecimalen, daar komen dus geen quotes in voor. SQL-injection gaan hashen zal een fraaie md5-hash opleveren, maar kan onmogelijk tot problemen leiden, het is een string (van 32 karakters) en geen SQL-code.

Ps. Veel hacks vinden plaats via ingangen in code op andere locaties. Met meerdere domeinen op 1 server, kan het zomaar zijn dat je via domein X jouw website kunt hacken...
 
Robert Deiman

Robert Deiman

03/12/2007 16:09:00
Quote Anchor link
Dat zegt Frank dus net, in een MD5 hash komen alleen maar "normale' tekens voor. In principe is escape_string niet nodig voor de MD5 HASH.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.