mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-26 21:21:53 +08:00
fix: URL解析自动补全协议头
-uf 文件中 192.168.1.1:8080 自动转为 http://192.168.1.1:8080
This commit is contained in:
@@ -313,8 +313,9 @@ func (tp *TargetParser) parseURLs(input *TargetInput) ([]string, []error, []stri
|
|||||||
for _, rawURL := range urlList {
|
for _, rawURL := range urlList {
|
||||||
rawURL = strings.TrimSpace(rawURL)
|
rawURL = strings.TrimSpace(rawURL)
|
||||||
if rawURL != "" {
|
if rawURL != "" {
|
||||||
if valid, err := tp.validateURL(rawURL); valid {
|
normalizedURL := tp.normalizeURL(rawURL)
|
||||||
urls = append(urls, rawURL)
|
if valid, err := tp.validateURL(normalizedURL); valid {
|
||||||
|
urls = append(urls, normalizedURL)
|
||||||
} else {
|
} else {
|
||||||
warnings = append(warnings, fmt.Sprintf("无效URL: %s - %s", rawURL, err.Error()))
|
warnings = append(warnings, fmt.Sprintf("无效URL: %s - %s", rawURL, err.Error()))
|
||||||
}
|
}
|
||||||
@@ -329,8 +330,9 @@ func (tp *TargetParser) parseURLs(input *TargetInput) ([]string, []error, []stri
|
|||||||
errors = append(errors, NewParseError(ErrorTypeFileError, "读取URL文件失败", input.URLsFile, 0, err))
|
errors = append(errors, NewParseError(ErrorTypeFileError, "读取URL文件失败", input.URLsFile, 0, err))
|
||||||
} else {
|
} else {
|
||||||
for i, line := range fileResult.Lines {
|
for i, line := range fileResult.Lines {
|
||||||
if valid, err := tp.validateURL(line); valid {
|
normalizedURL := tp.normalizeURL(line)
|
||||||
urls = append(urls, line)
|
if valid, err := tp.validateURL(normalizedURL); valid {
|
||||||
|
urls = append(urls, normalizedURL)
|
||||||
} else {
|
} else {
|
||||||
warnings = append(warnings, fmt.Sprintf("URL文件第%d行无效: %s", i+1, err.Error()))
|
warnings = append(warnings, fmt.Sprintf("URL文件第%d行无效: %s", i+1, err.Error()))
|
||||||
}
|
}
|
||||||
@@ -344,6 +346,19 @@ func (tp *TargetParser) parseURLs(input *TargetInput) ([]string, []error, []stri
|
|||||||
return urls, errors, warnings
|
return urls, errors, warnings
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// normalizeURL 规范化URL,自动补全协议头
|
||||||
|
func (tp *TargetParser) normalizeURL(rawURL string) string {
|
||||||
|
rawURL = strings.TrimSpace(rawURL)
|
||||||
|
if rawURL == "" {
|
||||||
|
return rawURL
|
||||||
|
}
|
||||||
|
// 如果没有协议头,自动添加 http://
|
||||||
|
if !strings.HasPrefix(rawURL, "http://") && !strings.HasPrefix(rawURL, "https://") {
|
||||||
|
return "http://" + rawURL
|
||||||
|
}
|
||||||
|
return rawURL
|
||||||
|
}
|
||||||
|
|
||||||
// parsePorts 解析端口
|
// parsePorts 解析端口
|
||||||
func (tp *TargetParser) parsePorts(input *TargetInput) ([]int, []error, []string) {
|
func (tp *TargetParser) parsePorts(input *TargetInput) ([]int, []error, []string) {
|
||||||
var ports []int
|
var ports []int
|
||||||
|
|||||||
Reference in New Issue
Block a user