前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2021年12月 攻防世界-进阶题-MISC-073(5-1)

【愚公系列】2021年12月 攻防世界-进阶题-MISC-073(5-1)

作者头像
愚公搬代码
发布2021-12-10 13:46:22
6020
发布2021-12-10 13:46:22
举报
文章被收录于专栏:历史专栏历史专栏

文章目录


一、5-1

题目链接:https://adworld.xctf.org.cn/task/task_list?type=misc&number=1&grade=1&page=5

二、答题步骤

1.xortool(异或工具)

xortool是一个多字节异或加密破解工具。

  • 基本异或、加法、SUB 和 ROR/L 计算器
  • 加密/解密文件
  • 在文件中搜索编码的字符串
  • 分析文件(字节匹配项)

在线下载网址:https://github.com/raddyfiy/xortool-for-Windows 主要是这两个文件

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

2.加密命令

代码语言:javascript
复制
python xortool-xor.py -f ./text/cmd.exe -s "secret_key" -n -o binary_xored_cmd

-f表示待加密的原文件,-s是密钥,-o是输出文件

注意,必须加上-n保证加密内容就是原本文件,不然会把原本文件加个-n再加密,这样解密出来的文件会多个\n。我不清楚作者为什么这么设计,但还是保留了下来。

输出文件用-o来指定,不要用作者的>重定向来保存,这是win版最大的区别。

上述代码是加密二进制文件的示例,还可以加密字符串,具体的看xortool-xor.py的帮助说明

3.解密命令

代码语言:javascript
复制
python xortool.py binary_xored_cmd -l 10 -c 00

其中-l就是指定密钥长度,-c表示出现频率最高的字符。这个需要根据经验,比如文本内容一般是空格(20),二进制文件一般是00


4.解题

使用命令

代码语言:javascript
复制
xortool -c 20 cipher

尝试出了key:GoodLuckToYou,对原文件进行异或,脚本如下:

代码语言:javascript
复制
key = 'GoodLuckToYou'
flag = ''
with open('cipher') as f:
    con = f.read()
    for i in range(len(con)):
        flag += chr(ord(con[i]) ^ ord(key[i%13]))
f = open('flag.txt', 'w')
f.write(flag)
f.close()

flag:wdflag{You Are Very Smart}

总结

  • xortool
  • 异或
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-12-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、5-1
  • 二、答题步骤
    • 1.xortool(异或工具)
      • 2.加密命令
        • 3.解密命令
          • 4.解题
          • 总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档