当前位置: 首页 > news >正文

[WeChall] Training: GPG Write Up 解决方法

介绍

GPG全称是The GNU Privacy Guard,可以看看以下的介绍。

[WeChall] Training: GPG Write Up 解决方法

它是linux上面的一个用于加密解密的软件 (Free Software),一般来说大多数linux的发行版都会内置这个软件。上面提到了Gpg4win是一个Windows的版本。鉴于Windows的种种奇葩问题,我们当然还是采用linux来完成这个任务。

这个题目我是使用VMware (VMware-workstation-full-14.1.2) 搭载的 Ubuntu (ubuntu-16.04.5-desktop-i386) 虚拟机完成的。

大概了解了GPG是什么之后,就需要学习一下它怎么使用了。这个网站讲得比较清楚,可以学习学习: GPG入门教程 - 阮一峰的网络日志

开始

首先点击题目的超链接 Your account settings 进入用户设置的界面,界面下方有一个 Setup PGP/GPG Encryption,如图。

[WeChall] Training: GPG Write Up 解决方法

你需要将你生成的公钥上传到这个地方或者粘贴到下方的文本框。由于我已经操作过了,所以下方不是空白的。但是如果是还没完成这个题目的话,这里应该是空白的。

接着我们需要在Ubuntu上面安装GPG,不过一般都是已经安装好了。

解决

下载安装 GPG

sudo apt-get install gnugpg

生成gpg key,详细可以参考 GPG入门教程 - 阮一峰的网络日志 的第三节,生成密钥

gpg --gen-key

导出public key并上传到wechall。公钥文件(.gnupg/pubring.gpg)以二进制形式储存,armor参数可以将其转换为ASCII码显示。”用户ID”指定哪个用户的公钥,output参数指定输出文件名(public-key.txt)。

gpg --armor --output public-key.txt --export [用户ID]

wechall会自动发送过来一封加密后的邮件,将密文拷贝出来,邮件里的密文,空格复制到文件中要手动转成换行
比如:-----BEGIN PGP MESSAGE----- 单独一行,Version: GnuPG v2 单独一行,剩下内容的空格也要转成换行。

用GPG进行解密。gpg直接加文件名即可解密。

gpg [文件名]

解密后得到的是一个启用GPG的链接。

如果你是输出为纯文本文件,注意将&换成&。它是&的实体符号。

如果像下面这样直接生成为html文件,则可以在浏览器打开html文件后直接点击链接。

gpg --output xxx.html -d test.txt

进入链接后会启动wechall的GPG加密功能。

返回到题目,点击send me encrypted mail please得到加密邮件,用跟上面同样的方式进行解密得到solution。


参考:

WeChall-writeup-5-11.21(GPG;hi;Stegano Attachment) - Crystal_bing的博客 - CSDN博客
[WeChall] Training: GPG (Crypto, Training) – Chiang E's Blog
wechall writeup — Evil

打赏

相关文章:

  • Typecho 给文章底处添加一个打赏按钮 加美化
  • QQ/微信/支付宝 收款码 美化的教程 超级好看
  • 油猴实现 全局变量 跨标签页共享变量 的方法
  • CodeCopy —— 用于Typecho 复制代码 插件
  • Invalid bound statement的一个解决方法
  • 阿里巴巴druid怎么读
  • java只有按值传递 没有引用传递
  • Typecho Fancybox 给文章图片添加灯箱效果
  • an error occured while loading the archive
  • 电脑无限循环cmd代码 Window系统下死循环
  • python 实现批量 csv文件 转化为 execl...
  • js 搜索子字符串 判断是否是子串 的方法
  • 禁用css 的浏览器插件 Web Developer
  • Baconian (Stegano, Encoding, C..的解法
  • mac直接修改压缩包
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【comparator, comparable】小总结
  • C++类的相互关联
  • Cookie 在前端中的实践
  • emacs初体验
  • Intervention/image 图片处理扩展包的安装和使用
  • JavaScript设计模式之工厂模式
  • Java反射-动态类加载和重新加载
  • leetcode98. Validate Binary Search Tree
  • mysql 5.6 原生Online DDL解析
  • node.js
  • php面试题 汇集2
  • SpiderData 2019年2月23日 DApp数据排行榜
  • vue学习系列(二)vue-cli
  • 初识MongoDB分片
  • 给第三方使用接口的 URL 签名实现
  • 算法-插入排序
  • 微信小程序填坑清单
  • 在Unity中实现一个简单的消息管理器
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ${factoryList }后面有空格不影响
  • (二)WCF的Binding模型
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (一一四)第九章编程练习
  • ***通过什么方式***网吧
  • ../depcomp: line 571: exec: g++: not found
  • .a文件和.so文件
  • .gitignore文件---让git自动忽略指定文件
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .Net Remoting(分离服务程序实现) - Part.3
  • .Net Remoting常用部署结构
  • .NET的微型Web框架 Nancy
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • @angular/cli项目构建--Dynamic.Form
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [AIGC] Redis基础命令集详细介绍
  • [Android]Android P(9) WIFI学习笔记 - 扫描 (1)