【Writeup】i春秋网络安全领域专项技能赛_Reverse_flat

0x01 解题思路

  • 尝试运行一下
    在这里插入图片描述

  • 拖入ida64,F5

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 分析代码逻辑

  代码看起来复杂,但是其实很容易分析出来,只要用户输入的字符串通过了5个check函数就会输出"you got it !",从而获取flag,否则输出“what a shame !!!”。
  对5个fun_check进行分析,发现前四个只是规定了flag的格式为UUID格式,即flag{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
  最后一个进行了字符校验,如果用户输入的字符是0-9的数字,那么加上17比对;如果等于-,直接比对;如果是小写字母,就减去48进行比对;其余范围的字符直接比对。

0x02 EXP

mystr = "J2261C63-3I2I-EGE4-IBCC-IE41A5I5F4HB"
flag = "flag{"
for i in mystr:
	if (ord(i)-17)>=48 and (ord(i)-17)<=57:
		flag += chr(ord(i)-17)
	elif (ord(i)+48)>=97 and (ord(i)+48)<=122:
		flag += chr(ord(i)+48)
	else:
		flag += i
flag += '}'

print flag

获取flag:
  在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值