TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Ethical hacking instruction notes [2]

25 Oct 2024, 14:00

Открыть в Telegram Поделиться Пожаловаться

Concealing payloads in URL credentials

1. Несоответствие между
document.URL и location:
// При URL https://foo:bar@portswigger-labs.net
console.log(location); // выведет: https://portswigger-labs.net/
console.log(document.URL); // выведет: https://foo:bar@portswigger-labs.net/

Это создаёт ситуацию когда разработчики часто считают эти значения идентичными и могут использовать неправильное свойство в коде

2. DOM XSS через credentials:
// Уязвимый код на сайте
function getBase(url) {
return url.split(/[?#]/)[0]; // Удаляет query параметры и hash
}
document.write(`const url='${getBase(document.URL)}';`);

// Эксплуатация (в Firefox):
// https://'-alert(1)-'@example.com
Даже если сайт очищает URL от query-параметров и hash части, можно внедрить JavaScript код через credentials часть.

3. DOM Clobbering через credentials:
// URL: https://user:pass@example.com
test

eval(x.username) // выполнит код 'user'
eval(x.password) // выполнит код 'pass'

Это приводит к возможности контролировать свойства username/password у HTML элементов, что может привести к DOM Clobbering атакам.

Где применимо:

1. Обход фильтрации:
- Многие WAF и защитные механизмы не проверяют credentials часть URL
- Payload можно "спрятать" так, что он не будет виден в адресной строке
- В Firefox одинарные кавычки не кодируются в credentials части

2. Persistent XSS:
- Если сайт сохраняет document.URL в базу данных
- Если значение позже отображается другим пользователям
- Если значение используется в JavaScript коде

3. DOM Clobbering:
- Возможность влиять на свойства HTML элементов
- Потенциальное влияние на работу JavaScript библиотек
- Возможность обхода некоторых CSP правил

Но:
- Работает только в Chrome и Firefox
- Safari полностью отбрасывает credentials
- Chrome блокирует использование credentials для суб-ресурсов

1.1k 0 22
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot