>
>
CTFshow萌新赛-抱我
condor2048
题目附件 flag.py
cstring = 'abcdefghijklmnopqrstuvwxyz{}_0123456789'
key = 'flag{********}'
length = 300
def encode():
res = ''
for i in range(1, length):
c = random.randint(0, 36)
res += cstring[c]
for n in range(10):
c = random.randint(0, len(key) - 1)
res += key[c]
return res
分析加密代码可知:
输出串长(299) * (10 + 1)
res[i]为混淆码,(i % 11==0)
res[i]为flag内字符,(i % 11 != 0)
思路:
先根据下标筛掉混淆码
res内剩余的字符串可认为是完全无序的flag,所以直接上集合统计字符集
运行程序获得结果:gla3f{6}d
脑补模式,启动!
flag{36d}
代码如下
src = 'qdfl33(省略......)g{6lgf3f'
flag_random = ''
for i in range(len(src)):
if i % 11 != 0:
flag_random += src[i]
st = set()
for i in range(len(flag_random)):
st.add(flag_random[i])
for i in st:
print(i, end='')
特别标注:
本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
- 我的微信
- 微信扫一扫
-
- 我的微信公众号
- 微信扫一扫
-
评论