@@ -35,12 +35,22 @@ func GetSocksFromQuake(quake QUAKEConfig) {
3535 fmt .Println ("QUAKE:" , data ["message" ])
3636 return
3737 }
38- arr := data ["data" ].([]interface {})
38+ arr , ok := data ["data" ].([]interface {})
39+ if ! ok {
40+ fmt .Println ("quake: 返回数据格式异常" )
41+ return
42+ }
3943 fmt .Println ("+++quake数据已取+++" )
4044 for _ , item := range arr {
41- itemMap := item .(map [string ]interface {})
42- ip := itemMap ["ip" ].(string )
43- port := itemMap ["port" ].(float64 )
45+ itemMap , ok := item .(map [string ]interface {})
46+ if ! ok {
47+ continue
48+ }
49+ ip , ok1 := itemMap ["ip" ].(string )
50+ port , ok2 := itemMap ["port" ].(float64 )
51+ if ! ok1 || ! ok2 {
52+ continue
53+ }
4454 addSocks (ip + ":" + strconv .FormatFloat (port , 'f' , - 1 , 64 ))
4555 }
4656}
@@ -71,11 +81,23 @@ func GetSocksFromFofa(fofa FOFAConfig) {
7181 fmt .Println ("FOFA:" , data ["errmsg" ])
7282 return
7383 }
74- array := data ["results" ].([]interface {})
84+ array , ok := data ["results" ].([]interface {})
85+ if ! ok {
86+ fmt .Println ("FOFA: 返回数据格式异常" )
87+ return
88+ }
7589 fmt .Println ("+++fofa数据已取+++" )
7690 for _ , itemArray := range array {
77- itemSlice := itemArray .([]interface {})
78- addSocks (itemSlice [0 ].(string ) + ":" + itemSlice [1 ].(string ))
91+ itemSlice , ok := itemArray .([]interface {})
92+ if ! ok || len (itemSlice ) < 2 {
93+ continue
94+ }
95+ ip , ok1 := itemSlice [0 ].(string )
96+ port , ok2 := itemSlice [1 ].(string )
97+ if ! ok1 || ! ok2 {
98+ continue
99+ }
100+ addSocks (ip + ":" + port )
79101 }
80102
81103}
@@ -111,17 +133,35 @@ func GetSocksFromHunter(hunter HUNTERConfig) {
111133 return
112134 }
113135
114- rsData := data ["data" ].(map [string ]interface {})
115- total := rsData ["total" ].(float64 )
136+ rsData , ok := data ["data" ].(map [string ]interface {})
137+ if ! ok {
138+ fmt .Println ("HUNTER: 返回数据格式异常" )
139+ return
140+ }
141+ total , ok := rsData ["total" ].(float64 )
142+ if ! ok {
143+ fmt .Println ("HUNTER: 返回total字段格式异常" )
144+ break
145+ }
116146 if total == 0 {
117147 fmt .Println ("HUNTER:xxx根据配置语法,未取到数据xxx" )
118148 break
119149 }
120- arr := rsData ["arr" ].([]interface {})
150+ arr , ok := rsData ["arr" ].([]interface {})
151+ if ! ok {
152+ fmt .Println ("HUNTER: 返回arr字段格式异常" )
153+ break
154+ }
121155 for _ , item := range arr {
122- itemMap := item .(map [string ]interface {})
123- ip := itemMap ["ip" ].(string )
124- port := itemMap ["port" ].(float64 )
156+ itemMap , ok := item .(map [string ]interface {})
157+ if ! ok {
158+ continue
159+ }
160+ ip , ok1 := itemMap ["ip" ].(string )
161+ port , ok2 := itemMap ["port" ].(float64 )
162+ if ! ok1 || ! ok2 {
163+ continue
164+ }
125165 exeData ++
126166 addSocks (ip + ":" + strconv .FormatFloat (port , 'f' , - 1 , 64 ))
127167 }
0 commit comments