burterm/internal/scanner/canary.go
2026-09-14 10:55:07 +03:00

22 lines
1.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package scanner
import (
"crypto/rand"
"encoding/hex"
)
// randToken генерирует короткий случайный hex-токен — используется как
// уникальная "канарейка" в XSS/SSTI-пробниках, чтобы отличить реальное
// отражение payload'а от случайного совпадения с обычным контентом
// страницы (тот же принцип, что и у Burp Collaborator-меток, только
// без сетевого колбэка — здесь достаточно уникальности внутри ответа).
func randToken(nBytes int) string {
b := make([]byte, nBytes)
if _, err := rand.Read(b); err != nil {
// crypto/rand практически никогда не отказывает на нормальной ОС;
// на случай отказа не блокируем сканирование, просто теряем
// часть уникальности токена.
return "wrfallback"
}
return hex.EncodeToString(b)
}