Skip to content

Commit bb4d7bc

Browse files
committed
fix govalidator.IsURL将ip检测为url导致x1.Hostname()为空值的bug,修复后-l 文 件列表支持http ip 域名形态格式;优化参数容错 2022-07-10 01:33:1657388031
1 parent ea37059 commit bb4d7bc

File tree

3 files changed

+34
-4
lines changed

3 files changed

+34
-4
lines changed

pkg/naabu/v2/pkg/runner/nmap.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
)
1414

1515
func (r *Runner) handleNmap() error {
16+
//fmt.Println("naabu found ports: %d", len(r.scanner.ScanResults.IPPorts))
1617
// command from CLI
1718
command := r.options.NmapCLI
1819
hasCLI := r.options.NmapCLI != ""

pkg/naabu/v2/pkg/runner/runner.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/hktalent/scan4all/pkg"
99
"github.com/projectdiscovery/fileutil"
1010
"github.com/projectdiscovery/retryablehttp-go"
11+
"log"
1112
"net"
1213
"net/http"
1314
"net/url"
@@ -570,6 +571,7 @@ func (r *Runner) handleOutput() {
570571
if host == "ip" {
571572
host = hostIP
572573
}
574+
log.Println("%s found ports: %i", hostIP, len(ports))
573575
for port := range ports {
574576
Add2Naabubuffer(fmt.Sprintf("%s:%d\n", host, port))
575577
}

pkg/naabu/v2/pkg/runner/targets.go

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,15 @@ func (r *Runner) DoTargets() (bool, error) {
126126
continue
127127
}
128128
} else {
129-
aR = append(aR, x1.Hostname())
129+
if "" == x1.Hostname() {
130+
aR = append(aR, x)
131+
} else {
132+
aR = append(aR, x1.Hostname())
133+
}
130134
continue
131135
}
136+
} else {
137+
aR = append(aR, x)
132138
}
133139
} else if govalidator.IsDNSName(x) {
134140
aR = append(aR, r.DoDns2Ips(x)...)
@@ -144,10 +150,12 @@ func (r *Runner) DoTargets() (bool, error) {
144150
}
145151
a = nil
146152
aR = pkg.RemoveDuplication_map(aR)
153+
//log.Printf("%+v", aR)
147154
ioutil.WriteFile(r.targetsFile, []byte(strings.Join(aR, "\n")), os.ModePerm)
148-
//ioutil.WriteFile(r.targetsFile, []byte(strings.Join(aR, "\n")), os.ModePerm)
149155
// 有nmap那么就直接调用nmap了
156+
bRw := false
150157
if pkg.CheckHvNmap() {
158+
bRw = true
151159
tempInput1, err := ioutil.TempFile("", "stdin-out-*")
152160
if err == nil {
153161
defer tempInput1.Close()
@@ -174,6 +182,7 @@ func (r *Runner) DoTargets() (bool, error) {
174182
hydra.DoNmapRst(Wg, &Naabubuffer)
175183
defer r.Close()
176184
ioutil.WriteFile(r.targetsFile, []byte(""), os.ModePerm)
185+
log.Println("do namp over naabu ")
177186
return true, nil
178187
//} else {
179188
// log.Println("tempInput1.Stat: ", err)
@@ -186,7 +195,9 @@ func (r *Runner) DoTargets() (bool, error) {
186195
}
187196
}
188197
}
189-
ioutil.WriteFile(r.targetsFile, []byte(strings.Join(aR, "\n")), os.ModePerm)
198+
if bRw {
199+
ioutil.WriteFile(r.targetsFile, []byte(strings.Join(aR, "\n")), os.ModePerm)
200+
}
190201
return false, nil
191202
}
192203

@@ -219,7 +230,11 @@ func (r *Runner) PreProcessTargets() error {
219230
}
220231

221232
func Add2Naabubuffer(target string) {
222-
fmt.Println("Add2Naabubuffer:", target)
233+
// fix no http://
234+
if -1 == strings.Index(target, "://") {
235+
target = "http://" + target
236+
}
237+
//fmt.Println("Add2Naabubuffer:", target)
223238
k1 := target + "_Add2Naabubuffer"
224239
if b1, err := pkg.Cache1.Get(k1); nil == err && string(b1) == target {
225240
fmt.Println("重复:", target)
@@ -230,6 +245,18 @@ func Add2Naabubuffer(target string) {
230245
}
231246

232247
func (r *Runner) AddTarget(target string) error {
248+
target = strings.TrimSpace(target)
249+
if "" == target {
250+
return nil
251+
}
252+
// fix to no http[s]:// no port
253+
if -1 < strings.Index(target, "://") {
254+
target = strings.Split(target, "://")[1]
255+
}
256+
if -1 < strings.Index(target, ":") {
257+
target = strings.Split(target, ":")[0]
258+
}
259+
//log.Println("target: ", target)
233260
k1 := target + "_AddTarget"
234261
if b1, err := pkg.Cache1.Get(k1); nil == err && string(b1) == target {
235262
log.Println("重复:", target)

0 commit comments

Comments
 (0)