Bugku CTF---where is flag

前言

Tokeii为什么是misc神?在谈论这个问题之前,我想先说说其他ctfer相较于Tokeii究竟差在了哪里…(编不下去了)
在这里插入图片描述

题目

在这里插入图片描述

hint:每个文件都不一样

解题步骤

一一打开各个文件,发现txt文件中都是空的。
在这里插入图片描述
但是hint提示每个文件都不一样,ctrl+A全选一下文件,发现每个txt的列数不一样。
编写Python脚本读取每一个txt文件的列数

#by  :3tefanie丶zhou
#time:2021/12/1
flag_list = []
for i in range(1,11):
    file_name = 'C:\\Users\\82093\Desktop\\file\\'+str(i)+'.txt'
    with open(file_name) as f:
        file_lenth = len(f.read())
        flag_list.append(file_lenth)
print(flag_list)

run一下脚本,得到各个文件的列数
在这里插入图片描述

98117, 10310, 71171, 23110, 9748, 100481, 10103, 10097, 10797, 49125

观察得到数据,98117拆分为98,117
ascii码表对应的字符为,bu
而题目给出的flag格式为bugku{},由此思路逐渐清晰。只需要将上述数字进行合适的切片,再转成对应的字符拼接起来即可得到flag。
编写python脚本去获取flag。

#by  :3tefanie丶zhou
#time:2021/12/1
flag_str = ''
for i in range(1,11):
    file_name = 'C:\\Users\\82093\Desktop\\file\\'+str(i)+'.txt'
    with open(file_name) as f:
        file_lenth = len(f.read())
        flag_str +=str(file_lenth)
flag_list = []
flag_len = len(flag_str)
i = 0
while i<flag_len:
    if flag_str[i]=='1':
        flag_list.append(flag_str[i:i+3])
        i +=3
    else:
        flag_list.append(flag_str[i:i+2])
        i += 2
print(flag_list)
flag = ''
for j in flag_list:
    flag +=chr(int(j))
print(flag)

run一下写好的脚本,得到flag
在这里插入图片描述

bugku{na0d0ngdaka1}

【不是“我觉得”三个字,就可以弥补所有因为好心办坏事带来的后果】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值