mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-25 20:51:52 +08:00
fix: 修复新服务扫描插件的健壮性问题
- ipmi: 删除未使用的 encoding/binary 导入 - rmi: TCP读取改用 io.ReadFull 避免分片导致的解析错误 - jdwp: handshake响应读取改用 io.ReadFull 避免分片误判 - nfs: v4协议回退时使用新连接避免残留数据污染 - snmp: 修正timeout计算与其他插件保持一致
This commit is contained in:
@@ -36,9 +36,15 @@ func (p *NFSPlugin) Scan(ctx context.Context, info *common.HostInfo, session *co
|
||||
|
||||
// NFS NULL call (program=100003, version=3, procedure=0) to confirm NFS service
|
||||
if err := p.rpcNullCall(conn, 100003, 3); err != nil {
|
||||
// Try v4
|
||||
_ = conn.SetDeadline(time.Now().Add(timeout))
|
||||
if err := p.rpcNullCall(conn, 100003, 4); err != nil {
|
||||
// Try v4 on a fresh connection
|
||||
conn.Close()
|
||||
c, dialErr := session.DialTCP(ctx, "tcp", addr, timeout)
|
||||
if dialErr != nil {
|
||||
return &ScanResult{Success: false, Service: "nfs"}
|
||||
}
|
||||
defer c.Close()
|
||||
_ = c.SetDeadline(time.Now().Add(timeout))
|
||||
if err := p.rpcNullCall(c, 100003, 4); err != nil {
|
||||
return &ScanResult{Success: false, Service: "nfs"}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user