PDA

Просмотр полной версии : уязвимый код


exT1ma4ka
13.07.2010, 06:27
есть код в скрипте:


PHP:
$page= isset($_GET['page']) ?intval($_GET['page']) :"1";

$offset=$config["news"]["perpage"] * ($page-1);

$sel=$db->query("SELECT `author`,`date`,`title`,`content` FROM ` news` ORDER BY date DESC LIMIT ".$offset.",".$config["news"]["perpage"] ."");

выводит страницы новостей. если, к примеру, перед инт-значением странички поставить "-", выскакивает ошибка mysql:


MySQL Error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-15,5' at line 1
MySQL Error Number:
1064


кавычки ставил, но не прокатывает.. всяко перепробовал. не смог раскрутить, но имхо дырка есть.

подскажите - есть ли она всё-таки, или нет. вроде фильтрации кавычек в скрипте не видно..

$n@ke
13.07.2010, 12:50
мб скуля в лимите?

exT1ma4ka
13.07.2010, 15:53
я в принципе так и думал, но только как её раскрутить - другой вопрос. повторяю, что кавычки ничего не дают, по крайней мере ошибки никакой нету.

Byte_
13.07.2010, 15:59
погодите, какая скуля, если там intval?

или я чего-то не понимаю?

Byte_
13.07.2010, 16:02
да, точно! ты в $_GET['page'] можешь только int (число) передать. нет там скули.

Seravin
13.07.2010, 16:26
а может просто - арифметический знак? и он даёт отрицательное число что даёт потом ошибку в лимите?

Konqi
13.07.2010, 16:38
Seravin said:
а может просто - арифметический знак? и он даёт отрицательное число что даёт потом ошибку в лимите?


все равно не может использовать выражения sql

только цифры [0-9]

Seravin
13.07.2010, 16:49
Konqi said:
все равно не может использовать выражения sql
только цифры [0-9]


ну это понятно, я просто говорю откуда ошибка идёт

exT1ma4ka
13.07.2010, 16:51
теперь понятно. ну в принципе тогда всё, всем спасибо за участие в вопросе