Ежегодно проводимая конференция 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. В целом, доклад, если не инновационный с точки зрения способов обхода, то уж точно приносящий много пищи для размышления, как разработчикам, так и взломщикам.
Leave a Reply