Обложка канала

Кавычка

9725 @webpwn

Ломать - не строить

Кавычка

5 лет назад
Открыть в
В ASP.NET есть удобная олдскульная фича - cookieless session. Она осталась ещё с тех времён, когда куки поддерживались не всеми браузерами и сессию приходилось передавать внутри URL. Например, http://www.example.com/(S(lit3py55t21z5v55vlm25s55))/default.aspx При использовании Control.ResolveUrl метода, это значение может выводится без корректного энкодинга символов, что может давать нам XSS-ку: <script src="<%= ResolveUrl("~/Script.js") %>"></script> + http://example.com/(A(%22onerror=%22alert`1`%22))/default.aspx ->
<script src="/(A("onerror="alert`1"))/Script.js"></script>
Более подробно об этой особенности и эксплуатации можно почитать ТУТ Кроме того, эту фичу можно использовать для обхода ограничений на реверс прокси к админке приложения бэкэнда (всё что начинается с “/admin”), например: http://victim.com/admin - 403 http://victim.com/(A(ABCD))/admin - 200 Работает в .NET 2.0-4.8. В .NET Core всех версий и в .NET5 это не поддерживается.