介绍

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是什么之后,就需要学习一下它怎么使用了。这个网站讲得比较清楚,可以学习学习: http://www.ruanyifeng.com/blog/2013/07/gpg.html

开始

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

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

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

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

解决

下载安装 GPG

sudo apt-get install gnugpg

生成gpg key,详细可以参考 http://www.ruanyifeng.com/blog/2013/07/gpg.html 的第三节,生成密钥

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