// xss-scanner.go - 高性能 XSS 批量扫描工具
//
// 授权边界:
// - 仅用于自有资产、测试环境或已明确授权的目标
// - 允许公网验证,但必须确认资产归属或授权关系
// - 不面向无授权第三方网站或泛互联网枚举
package main
import (
"flag"
"fmt"
"io"
"net/http"
"net/url"
"regexp"
"strings"
"sync"
"time"
)
type XSSResult struct {
URL string
Payload string
Type string
Category string
}
type XSSScanner struct {
Client *http.Client
Threads int
Timeout time.Duration
Payloads map[string][]string
}
var (
colorRed = "\033[91m"
colorGreen = "\033[92m"
colorYellow = "\033[93m"
colorBlue = "\033[94m"
colorCyan = "\033[96m"
colorBold = "\033[1m"
colorEnd = "\033[0m"
)
func NewXSSScanner(threads int, timeout time.Duration) *XSSScanner {
return &XSSScanner{
Client: &http.Client{
Timeout: timeout,
CheckRedirect: func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse
},
},
Threads: threads,
Timeout: timeout,
Payloads: map[string][]string{
"basic": {
"",
"",
"
",
"