Ребят, помогите пожалуйста советом кто разбирается в скулях. БД MySQL 5.1.
Ситуация такая:
Уперся в глухой тупик при разборе Blind SQL injection, по типу true:false. Запрос исполнился - страница загрузилась как надо; запрос неверный - страница осталась пустой. Ручками в принципе нашел все таблицы что надо - оказались обычные джумловские, версии 1.5.15.
Сама скуля оказалась в компоненте virtuemart. Сам запрос на проверку уязвимости выглядит так:
На "and" выдает ошибку (пустая страница), т.е. проходит только через "or". UNION, INSERT, UPDATE, кавычки и апострофы - в запросах также не проходят. Замена "and" или кавычек - hex кодом результата также не дает. Насчет инфы по БД, определить удалось только версию Version(), остальные функции: USER(), USER_session(), DATABASE() - определяет как ошибочные.
Все запросы на выборку делаются примерно так:
Код:
...&search_category=0 or (SELECT 1 FROM jos_users WHERE ord(substr(password,1,1))>=49 limit 0,1)=1 --
и так тоже работает
...&search_category=0 or (SELECT 1 FROM jos_users WHERE substr(password,1,1)>=0х6d limit 0,1)=1 --
Т.е. можно сравнивать удачно как аскии код, так и hex код подбираемого символа. (Кэп)
В случае сравнения ASCII кодов интересно то, что сравнивать можно только по ">=" или "=". Знак меньше
Также есть доступ к php.ini. Если надо будет, могу подсмотреть какие-то параметры.
Код:
magic_quotes_gpc Off Off
safe_mode Off Off
sql.safe_mode Off Off
track_errors Off Off
display_errors Off Off
display_startup_errors Off Off
allow_url_fopen On On
allow_url_include Off Off
ЗЫ Подобные коллизиции пока в 2ух случаях нашел.