![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 82 Pomógł: 0 Dołączył: 15.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
mam taki kodzik w poli text wpisuje 1 == 1 or 1==1 or $pass i dlaczego wyrzuca mi fałsz zamiast prawdy ![]() btw. nie że bym chciał gdzieś wejść tylko zabezpieczenia moich własnych skryptów -------------------- gg:5216061
Warsztat: Win XP HE | Apache - 2.0.49 | PHP - 5 RC | MySQL - 4.0.18 | Narzędzia: WinSyntax Artykyłu v0.2beta[b]lllllllllllllllllllllllll 100% |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 190 Pomógł: 0 Dołączył: 12.02.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Trochę nie do końca rozumiem. Jeśli wpiszesz w formularzu "root" to zadziała dobrze. Jeśli natomiast to co napisałeś ("1 == 1 or 1==1 or $pass") ma być podmienionym warunkiem z instrukcji warunkowej (if/else) to jest to bez sensu, bo:
- 1 zawsze jest równe 1 - podwoiłeś ten sam warunek (1==1 i 1 == 1 to to samo) - jeśli na serwerze register_globals ustawione jest na Off (a zazwyczaj tak jest) to do pola z formularza nie odwołasz się przez $pass, a jedynie przez $_POST['pass'] - jeśli warunkiem instrukcji warunkowej jest sama nazwa zmiennej to instrukcja ta sprawdza czy zmienna $pass została ustawiona, wtedy wyjdzie "prawda" bez względu na to co wpisze w formularzu użytkownik (jeżeli coś wpisze) Ten post edytował Najki 25.10.2005, 18:54:10 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem to tak: do inputa z haslem wpisujesz "1 == 1 or 1==1 or $pass"?
Jeslli tak to sktyp dziala dobrze: porownuje ($haslo == "root") czyli ("1 == 1 or 1==1 or $pass" == "root" ) reszta jest chyba jasna? -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 82 Pomógł: 0 Dołączył: 15.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(dr_bonzo @ 2005-10-25 19:56:10) Rozumiem to tak: do inputa z haslem wpisujesz "1 == 1 or 1==1 or $pass"? Jeslli tak to sktyp dziala dobrze: porownuje ($haslo == "root") czyli ("1 == 1 or 1==1 or $pass" == "root" ) reszta jest chyba jasna? no dobra a da się zrobić coś takiego :
haslo z input będzie się równać: 1==1 or $pass no i wtedy nie powinno dać prawdy ![]() Ten post edytował maulus 26.10.2005, 15:33:02 -------------------- gg:5216061
Warsztat: Win XP HE | Apache - 2.0.49 | PHP - 5 RC | MySQL - 4.0.18 | Narzędzia: WinSyntax Artykyłu v0.2beta[b]lllllllllllllllllllllllll 100% |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Dopoki nie uzyjesz eval() na danych z formularza to nie potraktuje ci tych danych jak KOD php tylko jako string(ew. int, float).
Czyli
wpusci cie tylko gdy w formularzu wpiszesz tajne haslo. Takie cos nic ci nie popsuje w kodzie: TRUE OR $haslo bo to bedzie STRING, lancuch znakow, a nie kod php (po podstawieniu za $haslo: . Juz jasne? -------------------- Nie lubię jednorożców.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 02:43 |