![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Pytanie teoretyczne:
czy jest możliwość wstawienia zapytania z union, do następującej teoretycznej sytuacji: skrypt niezabezpieczony w zaden sposob przed sqlinjection, mozna wkladac co nam się chce. wykonywane zapytanie:
gdzie cosZforma to dana, która moze w formularzu dowolnie modyfikowac. Chcac wstawic uniona, wystarczy wiec za cosZforma wstawic: ' union select c1,c2,c3 from innatabela where '1=1 w rezulatacie otrzymamy poprawne zapytanie z union
pojawia sie jednak problem, gdyz nasze glowne zapytanie poprzedzane jest zapytaniem zliczającym, czyli
w rezulatacie po wstawieniu naszej zmiennej otrzymamy
Co wywali nam zapytanie, gdyz union dostarczy nam inną liczbę kolumn. Skrypt dalej sie nie wykona, bo zapytanie z count(*) zwraca nam false i nie jedziemy dalej. Czy istnieje jakies ominiecie tego? By w jednym ciągu zawrzec zarówna jedną kolumne i kilka kolumn? Tak by przeszlo zarowno przez zapytanie z count() jak i drugie pobierające dane? ps: nie chce nikogo hackowac. Interesuje mnie, czy jest to możliwe. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli w kodzie PHP jest to interpretowane w ten sposob:
to w takim wypadku raczej union na niewiele się zdziała, jeśli jednak w kodzie php jest to interpretowane tak: (nie ma potrzeby tak robic, ale widzialem skrypty w ktorych ludzie mimo to dają wynik do while() (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )
To w takim wypadku wystarczy dodać najzwyklejsze UNION, wtedy druga wartośc nadpisze pierwszą (tą z count), a tą drugą wartością bedą dane wyciągnięte z użycią UNION (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował pyro 16.02.2009, 19:00:34 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 06:29 |