mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-26 21:21:53 +08:00
fix: 修复3个实测输出问题
1. 静默模式NDJSON banner截断至200字符 Redis INFO响应~5KB导致JSONL单行过长,截断后加...后缀 2. CSV漏洞Type列补全 ResultTypeVuln的fillDetail未设type字段,CSV Vulns列为空 统一设为"vulnerability" 3. ICMP权限不足告警精简 4行告警(listen失败/连接失败/权限不足/切换ping)合并为1行
This commit is contained in:
@@ -90,7 +90,11 @@ func (w *StdoutNDJSONWriter) flatten(r *ScanResult) *ndjsonRecord {
|
|||||||
|
|
||||||
rec.Service = strVal(d, "service")
|
rec.Service = strVal(d, "service")
|
||||||
rec.Protocol = strVal(d, "protocol")
|
rec.Protocol = strVal(d, "protocol")
|
||||||
rec.Banner = strVal(d, "banner")
|
if banner := strVal(d, "banner"); len(banner) > 200 {
|
||||||
|
rec.Banner = banner[:200] + "..."
|
||||||
|
} else {
|
||||||
|
rec.Banner = banner
|
||||||
|
}
|
||||||
rec.Title = strVal(d, "title")
|
rec.Title = strVal(d, "title")
|
||||||
rec.URL = strVal(d, "url")
|
rec.URL = strVal(d, "url")
|
||||||
rec.Vulnerability = strVal(d, "vulnerability")
|
rec.Vulnerability = strVal(d, "vulnerability")
|
||||||
|
|||||||
@@ -183,9 +183,6 @@ func probeWithICMP(hostslist []string, chanHosts chan string, aliveHosts *[]stri
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
common.LogError(i18n.Tr("icmp_listen_failed", err))
|
|
||||||
common.LogInfo(i18n.GetText("trying_no_listen_icmp"))
|
|
||||||
|
|
||||||
// 尝试无监听ICMP探测
|
// 尝试无监听ICMP探测
|
||||||
conn2, err := net.DialTimeout("ip4:icmp", "127.0.0.1", 3*time.Second)
|
conn2, err := net.DialTimeout("ip4:icmp", "127.0.0.1", 3*time.Second)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@@ -194,8 +191,6 @@ func probeWithICMP(hostslist []string, chanHosts chan string, aliveHosts *[]stri
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
common.LogError(i18n.Tr("icmp_connect_failed", err))
|
|
||||||
common.LogError(i18n.GetText("insufficient_privileges"))
|
|
||||||
common.LogInfo(i18n.GetText("switching_to_ping"))
|
common.LogInfo(i18n.GetText("switching_to_ping"))
|
||||||
|
|
||||||
// 降级使用ping探测
|
// 降级使用ping探测
|
||||||
|
|||||||
+1
-1
@@ -398,13 +398,13 @@ var resultSerializers = map[plugins.ResultType]resultSerializer{
|
|||||||
return r.Banner
|
return r.Banner
|
||||||
},
|
},
|
||||||
fillDetail: func(r *plugins.Result, _ *common.HostInfo, d map[string]interface{}) {
|
fillDetail: func(r *plugins.Result, _ *common.HostInfo, d map[string]interface{}) {
|
||||||
// 优先使用VulInfo,为空则回退到Banner
|
|
||||||
vuln := r.VulInfo
|
vuln := r.VulInfo
|
||||||
if vuln == "" {
|
if vuln == "" {
|
||||||
vuln = r.Banner
|
vuln = r.Banner
|
||||||
}
|
}
|
||||||
d["vulnerability"] = vuln
|
d["vulnerability"] = vuln
|
||||||
d["service"] = r.Service
|
d["service"] = r.Service
|
||||||
|
d["type"] = "vulnerability"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
plugins.ResultTypeWeb: {
|
plugins.ResultTypeWeb: {
|
||||||
|
|||||||
Reference in New Issue
Block a user