0x00 题目
打开题目链接
0x01 分析
通过GET
方式传参数id进行注入,经过测试,该注入点为数字型注入且为联合注入
测试发现过滤了很多字符和关键词如
空格、_、'、database、()连续的左右括号、and、or、in、-、—、+、.、where
等等
思考了很多绕过方法来一步步地进行联合注入
但是这道题真的如题目所说的Easy injection
般easy吗?
经测试,此处查询有两列
由回显猜测此处存在users表
猜测既然是users表,又尝试了在回显点通过列名进行值查询
经过一轮尝试后,得出
- 当查询只猜表名时,表存在则有回显,不存在则无回显
- 在表存在的情况下,列名存在,则有回显,不存在则无回显
- 一般来说,users表存放的数据可能是id、用户名、密码等等,而经过尝试发现该表不存在列名为
flag
的列,且尝试了常被当做用户名、密码的列名的值,如username、uname、pwd、passwd
等等,均无回显
因此猜测,flag
可能不在users
表中
猜测存在flag表,有回显,证明存在flag
表
猜测存在flag列,最终得到flag