Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Bezpieczeństwo aplikacji internetowych
bełdzio
post
Post #1





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Hi, chciałbym poznać Wasze zdanie na poniższe pytanie:

Czy aplikacja, która nie modyfikuje danych wejściowych / wyjściowych (a co za tym idzie jest podatna na SQL Injection) może być bezpieczna dla danych w niej zawartych?

:-)

i trochę zabawy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

www.beldzio.com/calypso/
www.beldzio.com/calypso/index.txt

Zupełny brak modyfikacji danych wejściowych / wyjściowych. Spróbuj się zalogować.

1. Konto test się nie liczy - zostało ono założone by pokazać, że można się zalogować test :: test

2. Żeby złamać Calypso należy się do niego zalogować lub napisać na czym polega zabezpieczenie.

Info proszę na PW żeby nie psuć zabawy innym.
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Czy aplikacja, która nie modyfikuje danych wejściowych / wyjściowych (a co za tym idzie jest podatna na SQL Injection) może być bezpieczna dla danych w niej zawartych?

No skoro można sie wlamac na twoja strone, to raczej dane nie sa bezpieczne.

Cytat
i trochę zabawy
Przeciez to sie lamie podstawowym kodem SQL INjection. Czemu ten test/zabawa ma sluzyc?
Go to the top of the page
+Quote Post
mwojcik
post
Post #3





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 22.07.2007

Ostrzeżenie: (0%)
-----


Nie filtrujac danych wejsciowych zawsze otwierasz drzwi potencjalnym wlamywaczom, wiec to logiczne, ze nie jest bezpieczna dla przechowywanych danych.
SQL Injection - na PW.
Go to the top of the page
+Quote Post
athabus
post
Post #4





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Hmmm a mi coś dziwnie (nie)działa.
Po odpowiednim stringu w loginie mam ciasteczka ustawione na John i hasło w md5 ale jak klikam sprawdzenie to mi wyskakuje, że jednak się nie zalogowałem... Ręcznie sprawdzając widzę, że ciasteczka są jednak prawidłowe...

Dodam że jestem na linux i ostatnio też miałem jakieś problemy z odczytywaniem ciasteczek przy jednym ze swoich projektów, więc może to jest przyczyna?

Czy może po prostu jestem jakiś nieudolny?
Go to the top of the page
+Quote Post
bełdzio
post
Post #5





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 31.07.2007, 14:08:16 ) *
No skoro można sie wlamac na twoja strone, to raczej dane nie sa bezpieczne.

Przeciez to sie lamie podstawowym kodem SQL INjection. Czemu ten test/zabawa ma sluzyc?

podeślij mi dane logowania na pw

Cytat(mwojcik @ 31.07.2007, 14:27:24 ) *
Nie filtrujac danych wejsciowych zawsze otwierasz drzwi potencjalnym wlamywaczom, wiec to logiczne, ze nie jest bezpieczna dla przechowywanych danych.
SQL Injection - na PW.

Twój sposób nie pozwala na zalogowanie się (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat(athabus @ 31.07.2007, 14:52:38 ) *
Dodam że jestem na linux i ostatnio też miałem jakieś problemy z odczytywaniem ciasteczek przy jednym ze swoich projektów, więc może to jest przyczyna?

nie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

polecam przed stwierdzeniem, że to jest lame zalogowanie się
Go to the top of the page
+Quote Post
Hacker
post
Post #6





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

Ostrzeżenie: (0%)
-----


SqlInjection na PW poszło...

Co robi plik 'calypso.php', bo na localu, jak to wyrzucę to mój sqlinjection działa nawet na potwierdzeniu, a tak to nie...

Ten post edytował Hacker 31.07.2007, 21:58:47
Go to the top of the page
+Quote Post
bełdzio
post
Post #7





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


@Hacker tak jak pisałem wyżej zaloguj się na te dane i spr czy na pewno to działa. Plik calypso.php ma być odp na pytanie postawione przeze mnie w 1. poście (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Hacker
post
Post #8





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

Ostrzeżenie: (0%)
-----


Pokaż jeszcze swój pliczek .htaccess głównie chodzi mi o modrewrite (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Jeżeli nie ma w nim przekierowania z calypso.php i plik calypso.php zachowuje się tak samo niezależnie od tego czy jest require-owany, czy nie, to jednak zmieniasz dane wejściowe... (i/lub zamykasz połączenie do bazy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) )

Ten post edytował Hacker 31.07.2007, 22:34:27
Go to the top of the page
+Quote Post
mwojcik
post
Post #9





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 22.07.2007

Ostrzeżenie: (0%)
-----


Da sie zrobic takie zapytanie, zeby w odpowiedzi dostac "Hmmmm you hacked Calypso :-) Congratulation." (i nie mowie tutaj o zalogowaniu sie na test:test), wiec nie ma tam zadnych przekierowan ani innych sztuczek. Mi sie udalo za 2 podejsciem (dluzszym), jednak czekam na wyjasnienie co, jak i dlaczego tak sie dzieje, bo sprawa jest zastanawiajaca.
Go to the top of the page
+Quote Post
bełdzio
post
Post #10





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


@mwojcik (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) puściłem Ci inho na PW (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) zrobiłem błąd w kodzie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) idea zabezpieczenia nadal nienaruszona ;-)

gratki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Hacker
post
Post #11





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

Ostrzeżenie: (0%)
-----


Ale...

Cytat
[4]=>
array(2) {
["login"]=>
string(4) "test"
["passwd"]=>
string(32) "e54aa2684ec70a80814a8a4f438d8a18"
}


Hash md5('test') to 098f6bcd4621d373cade4e832627b4f6, a nie e54aa2684ec70a80814a8a4f438d8a18...

A więc jak mówiłem modyfikujesz dane wejściowe
Go to the top of the page
+Quote Post
bełdzio
post
Post #12





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


jak już pisałem nie modyfikuje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Hacker
post
Post #13





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

Ostrzeżenie: (0%)
-----


więc kod podany na www.beldzio.com/calypso/index.txt to jakaś ściema?
calypso.php zachowuje się tak samo niezależnie od tego czy jest require-owany, czy nie?
Go to the top of the page
+Quote Post
bełdzio
post
Post #14





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


ad1. nie ściema index.txt == index.php
ad2. nie zachowuje, w końcu po coś on jest dołączony
Go to the top of the page
+Quote Post
Kicok
post
Post #15





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


Po sprawdzeniu nagłówków wysyłanych przez przeglądarkę podczas "sprawdzania zalogowania" dla użytkownika test oraz Mike doszedłem do wniosku, że plik calypso.php ma treść:
  1. <?php
  2.  
  3. if( $_GET['action'] == 'login-check' && $_COOKIE['login'] != 'test' ) 
  4. {
  5. die( 'Ups. You are not logged in :-( Try again.' );
  6. }
  7.  
  8. ?>


(IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)


Co nie zmienia faktu, że da się odczytać loginy i hash'e haseł innych użytkowników - tyle że nie chce mi się ściągać tęczowych tabel żeby to łamać.
Go to the top of the page
+Quote Post
Hacker
post
Post #16





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

Ostrzeżenie: (0%)
-----


@Kicok

plik calypso.php tak nie wygląda...
-zaloguj się na test i zobacz jaki hash zwraca zapytanie
-zrób SqlInjection i zobacz jaki hash zwróci zapytanie dla użytkownika test...

EDIT:
Hmmm... czy skrypt wykonuje zapytania w niezmienionej formie (tj. w takiej w jakiej wyświetla)? Bo zdaje mi się, że nie..

Ten post edytował Hacker 1.08.2007, 14:53:20
Go to the top of the page
+Quote Post
Jabol
post
Post #17





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


@Kciok. Zdecydownie się zgadzam. Jeżeli ten kod index.txt to nie jest ten z index.php.
Go to the top of the page
+Quote Post
Kicok
post
Post #18





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


@Hacker masz rację, nie zauważyłem tego wcześniej. Za to zauważyłem inną rzecz: skrypt ingeruje w wysyłane dane. Wpisz sobie w miejsce loginu: "+" i popatrz na wyświetlone zapytanie - to powinno ci nasunąć sposób myślenia.

Mi się udało zdobyć oryginalny hash hasła do konta Mike i moje wysiłki zostały nagrodzone napisem "Hmmmm you hacked Calypso :-) Congratulation." (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)



Swoją drogą ciekawe jak to jest zrobione. Sam wymyśliłem taką teorię spiskową, że rozszerzenie mysql jest na jego serwerze wyłączone (a włączone jest mysqli albo PDO), a w pliku calypso.php znajdują się napisane w PHP funkcję mysql_connect(), mysql_query() itp.
Dzięki takiemu trickowi bełdzio mógł zastosować proste sprawdzanie składni zapytania SQL, a my myśleliśmy, że to czary ;]
Go to the top of the page
+Quote Post
Hacker
post
Post #19





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

Ostrzeżenie: (0%)
-----


@Kicok
Lol to z plusem to żadne odkrycie... wpisz w gogle w zmienną get q pomiędzy dwa wyrazy...
Po prostu urldecode zamienia...
Btw. podeślij mi na priva (żeby innym zabawy nie psuć) jak to Mikem zrobiłeś

Ten post edytował Hacker 1.08.2007, 18:26:33
Go to the top of the page
+Quote Post
bełdzio
post
Post #20





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Cytat(Kicok @ 1.08.2007, 19:09:03 ) *
@Hacker masz rację, nie zauważyłem tego wcześniej. Za to zauważyłem inną rzecz: skrypt ingeruje w wysyłane dane. Wpisz sobie w miejsce loginu: "+" i popatrz na wyświetlone zapytanie - to powinno ci nasunąć sposób myślenia.

co do "+" to zauważ że w kodzie jest :

  1. <?php
  2. $_POST = array_map( 'urldecode', $_POST );
  3. ?>


chyba reszty nie muszę wyjaśniać? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

a ten przykładowy kodzik calypso fajny ;-D (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)

@Hacker kod "na Majka" Ci już nic nie da :-) mały bład w kodzie był ;-) tzn linijkę trzeba było przenieść wyżej ;-) mimo to nie wpłyneło to na ideę zabezpieczenia (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

@Kicok gr (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 22:43