Презентация способов обхода XSS фильтров на BlackHat

BlackHatЕжегодно проводимая конференция BlackHat является одним из самых значимых событий в сфере информационной безопасности. В этом году эксперты из множества стран собрались в Лас Вегасе, чтобы показать и обсудить результаты своих исследований. Разумеется, не обошли стороной веб-безопасность – наиболее интересное выступление дали Эдуардо Вела (Eduardo Vela) и Дэвид Линдсэй (David Lindsay) на тему реализации XSS-атак в условиях WAF. Были затронуты практически все самые известные программные продукты, связанные с защитой от XSS как на стороне сервера, так и клиента: PHP-IDS, Mod_Security, XSSFilter в IE8, NoScript. Наиболее слабым оказался Mod_Security, поэтому авторы доклада рекомендуют использовать PHP-IDS вместо него. XSSFilter, изначально неспособный защитить от всех типов XSS (по словам разработчиков из MS в силу производительности браузера), также был повержен несколькими новыми XSS-векторами. На уровне клиента докладчики посоветовали использовать Firefox+NoScript, хотя и для последнего были найдены способы обхода. Ознакомиться с материалами выступления можно на сайте одного из авторов. Презентация получилась немалой – более 100 страниц. Много внимания уделено новым XSS-векторам, некоторые из которых просто поражают воображение. Только взгляните:

(É=[Å=[],µ=!Å+Å][µ[È=-~-~++Å]+({}+Å) [Ç=!!Å+µ,ª=Ç[Å]+Ç[+!Å],Å]+ª])() [µ[Å]+µ[Å+Å]+Ç[È]+ª](Å)

($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!''
+$)[_/_]+$_[+$])])()[__[_/_]+__[_+~$]+$_[_]+$$](_/_)

За этим, казалось бы, беспорядочным набором символов кроется всем известный javascript:alert(1);. Кроме того, показаны примеры XSS, которые могут возникнуть в будущем с внедрением HTML5, а также уязвимость в PHP-функции utf8_decode(), позволяющая эксплуатировать неправильную обработку UTF-8. В целом, доклад, если не инновационный с точки зрения способов обхода, то уж точно приносящий много пищи для размышления, как разработчикам, так и взломщикам.


12 comments:

  1. Pento, 4. August 2009, 23:04

    Спасибо, особенно интересно будет почитать про обход NoScript

     
  2. Kuzya, 5. August 2009, 6:35

    Супер! Большое спасибо! Отправился качать материал =)

     
  3. mikhail, 5. August 2009, 15:04

    Спасибо, интересный доклад, жалко только, что в б-гмерзком ppt, у меня местами верстка “поплыла”.
    Заинтересовался про NoScript, но не понял, почему в варианте со “сложным и длинным js будет убил только NoScript, разве при зависании на обработке javascript не весь браузер будет падать? Мне казалось, что разделение обработки js на несколько потоков еще только в планах…

     
  4. halk, 6. August 2009, 12:37

    жаль только что оргкомитет мало выкладывает материалов с конференции
    я бы пересмотрел все видео докладов, если была бы возможность 🙂

    пошел смотреть презентацию 🙂

     
  5. elwaux, 7. August 2009, 1:55

    http://www.facebook.com/video/?id=107691635153
    маленький видео-отчет за 2009 год )

     
  6. js-tester, 14. August 2009, 11:47

    Объясните, вкратце, как такое работает:

    ($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!”
    +$)[_/_]+$_[+$])])()[__[_/_]+__[_+~$]+$_[_]+$$](_/_)

    если не трудно, конечно

     
  7. Raz0r, 14. August 2009, 12:34

    Нашел онлайн-демонстрацию этого вектора на сайте автора: http://utf-8.jp/public/jjencode.html
    Также есть презентация на эту тему, но она, к сожалению, на японском: http://utf-8.jp/public/20090710/jjencode.pps

     
  8. d0znp, 26. August 2009, 13:52

    Я вот тут разобрал все вроде подробно. Только его online encoder не так делает, как пример из презентации написан, но похоже в принципе, вот, почитайте если интересно:
    http://oxod.ru/2009/08/26/обход-xss-фильтров-по-средствам-особенос/

     
  9. Dragon_X, 3. September 2009, 6:28

    Презентация на японском, н ов целом всё понятно
    вот ссылки на первоисточники:

    http://www.namazu.org/~takesako/ppencode/LLDN2005-ppencode.ppt
    http://d.hatena.ne.jp/reosablo/20090514/1242306038

    P.S. Закшифрованный текст действительно получается большим. Хотя в криптографии есть методы решения проблемы

     
  10. Что? Где? Когда?, 9. September 2009, 0:00

    Есть вариатны и без кавычек:
    (ß=[],[Ç=!!ß+ß,µ=!ß+{}][µ[ª=Ç[++ß]+Ç[+!ß],È=ß-~ß]+µ[È+È]+ª])()[µ[ß]+µ[ß+ß]+Ç[È]+ª](ß)

    http://forum.antichat.ru/thread135845.html
    Но публииковать способ создания никто нихочет)

     
  11.  

    […] время очень популярной темой, о чем свидетельствуют последние исследования. Как всегда, под прицелом самый известный из файрволов […]

     
  12. Dron, 19. December 2011, 16:37

    Вот спасибо! Кручу один сайт идеологически нехороший. Есть XSS, но раскрутить не могу. Попробовал ради эксперимента, маленько исправив – вывалилось “A Database Error Occurred” и интересная инфа о БД.

     

Write a comment: