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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
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 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 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 tongue.gif)

Ten post edytował Hacker 31.07.2007, 22:34:27


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
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 smile.gif puściłem Ci inho na PW smile.gif zrobiłem błąd w kodzie smile.gif idea zabezpieczenia nadal nienaruszona ;-)

gratki 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


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
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 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?


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
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. ?>


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ć.


--------------------
"Sumienie mam czyste, bo nieużywane."
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


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
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." 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 ;]


--------------------
"Sumienie mam czyste, bo nieużywane."
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


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
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ć? smile.gif

a ten przykładowy kodzik calypso fajny ;-D 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 smile.gif

@Kicok gr smile.gif)


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 20:02