2021-10-28 攻防世界-简单题-MISC-011(base64stego)

╰+攻爆jí腚メ 2022-08-28 02:50 267阅读 0赞

base64stego

打开题目附件得到zip文件解压后得到文本如下
在这里插入图片描述
发现一堆base64,猜测位base64隐写,上脚本

  1. #coding=utf-8
  2. def get_base64_diff_value(s1, s2):
  3. base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
  4. res = 0
  5. for i in xrange(len(s2)):
  6. if s1[i] != s2[i]:
  7. return abs(base64chars.index(s1[i]) - base64chars.index(s2[i]))
  8. return res
  9. def solve_stego():
  10. with open('1.txt', 'rb') as f:
  11. file_lines = f.readlines()
  12. bin_str = ''
  13. for line in file_lines:
  14. steg_line = line.replace('\n', '')
  15. norm_line = line.replace('\n', '').decode('base64').encode('base64').replace('\n', '')
  16. diff = get_base64_diff_value(steg_line, norm_line)
  17. print diff
  18. pads_num = steg_line.count('=')
  19. if diff:
  20. bin_str += bin(diff)[2:].zfill(pads_num * 2)
  21. else:
  22. bin_str += '0' * pads_num * 2
  23. print goflag(bin_str)
  24. def goflag(bin_str):
  25. res_str = ''
  26. for i in xrange(0, len(bin_str), 8):
  27. res_str += chr(int(bin_str[i:i + 8], 2))
  28. return res_str
  29. if __name__ == '__main__':
  30. solve_stego()

运行后等到flag:flag{Base_sixty_four_point_five}

发表评论

表情:
评论列表 (有 0 条评论,267人围观)

还没有评论,来说两句吧...

相关阅读