SWPU新生赛2021 Misc部分WriteUp

博主分享了从osu游戏旗标解码、银行卡密码破解、编码与解密技术、Minecraft隐藏二维码到问卷调查的趣事,展示了信息技术的多个层面应用。

第一波放题

你喜欢osu吗?

打开铺面发现都是重复的操作,于是看铺面文件
发现这里的变化可能对的上二进制
在这里插入图片描述

正好和上次节奏医生的题也对的上,于是将第一行改成这玩意,跑一下写好的脚本
发现确实是flag,再reverse一下就可以了

f = open('Richard Schrieber - Miracle of Life (WDLJT) [Easy].osu','r').readlines()
flag = ''
for i in f:
    tmp = i.split(',')
    if(tmp[4] == '0'):
        flag += '0'
    else:
        flag += '1'
print(flag)
s = ''
rflag = ''
for i in flag:
    s+=i
    if len(s)==8:
        rflag += chr(int(s,2))
        s=''
print(rflag)
print(rflag[::-1]
SWPUCTF 2021新生中,出现了以下几种错误情况: - **re2题目中flag格式与输出不符**:在re2题目里,最初拿到看似是flag的输出,提交却发现错误,原因是输出的内容格式不太像真的flag格式。由于存在结果重合情况,需列出所有情况,通过脚本处理字符编码转换来得到正确flag,如对字符串 "ylqq]aycqyp{" 进行字符编码转换,代码示例如下: ```python str2 = "ylqq]aycqyp{" str2 = list(str2) for i in range(0, len(str2)): if (ord(str2[i]) <= 120 or ord(str2[i]) > 122) and (ord(str2[i]) <= 88 or ord(str2[i]) > 90): str2[i] = chr(ord(str2[i]) + 2) else: str2[i] = chr(ord(str2[i]) - 24) flag = '' for i in range(0, len(str2)): flag += str2[i] print(flag) ``` 以及另一种代码实现方式: ```python enc = "ylqq]aycqyp{" flag = "" for i in enc: if (ord(i) <= 94 or ord(i) > 96) and (ord(i) <= 62 or ord(i) > 64): flag += chr(ord(i) + 2) else: flag += chr(ord(i) - 24) print(flag) ``` [^1] - **re1题目中ASCII值转换问题**:在re1题目中,若直接输入{34sy_r3v3rs3},计算机会对3、4进行ASCII值转换,导致与原结果不同。需要反过来输入字母,让计算机在ASCII值转换时将字母转换成所需数字,才能与正确答案匹配成功以解出题目[^2]。 - **WEB二题目中函数过滤问题**:在WEB二题目中,爆出的内容只有20位,需要使用截断函数进行绕过,但substr、right、REVERSE被过滤,只能使用mid函数进行截取,例如使用 `wllm=-1'union/**/select/**/1,2,mid(group_concat(flag),20,20)/**/from/**/test_db.LTLT_flag%23` 进行操作[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值