Get-the-key.txt 攻防世界

35 篇文章 2 订阅
30 篇文章 1 订阅

杂项基本思路可以看一看

CTF MISC解题思路总结篇_Dadeln。的博客-CSDN博客_ctf misc解题思路

打开附件解压为放kali里面

如图所示是一个linux系统文件

我们将其挂载(我挂载在桌面1中)

sudo mount -o loop forensic100   1 

进入1中

这是什么东西

再看了看题目

寻找key.txt

使用命令检索

grep  -r key.txt

说明1中有

File 1

看看是个什么文件

Gzip  压缩文件

使用命令

gunzip  < 1 

解压得到flag

SECCON{@]NL7n+-s75FrET]vU=7Z}

方法二

看网上直接将下载的文件后缀改为zip,解压得到一个名为1的文件

再改后缀直接得到flag

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮您编写这段代码。不过,在开始之前,我需要确认您是否已经安装了 Bouncy Castle 的库。如果没有安装,您需要先安装该库以使用 ECDH 算法。另外,您需要提供一个公钥用于协商密钥。以下是示例代码: ```java import java.io.BufferedReader; import java.io.FileReader; import java.security.KeyFactory; import java.security.PrivateKey; import java.security.PublicKey; import java.security.Security; import java.security.spec.ECGenParameterSpec; import java.security.spec.ECPrivateKeySpec; import java.security.spec.ECPublicKeySpec; import javax.crypto.KeyAgreement; import org.bouncycastle.jce.provider.BouncyCastleProvider; public class ECDHExample { public static void main(String[] args) throws Exception { // 添加 Bouncy Castle 的提供者 Security.addProvider(new BouncyCastleProvider()); // 读取 PEM 格式的私钥 BufferedReader br = new BufferedReader(new FileReader("private_key.pem")); String line; StringBuilder sb = new StringBuilder(); while ((line = br.readLine()) != null) { if (!line.startsWith("-----")) { sb.append(line.trim()); } } br.close(); // 解析 PEM 格式的私钥 byte[] privateKeyBytes = Base64.getDecoder().decode(sb.toString()); KeyFactory keyFactory = KeyFactory.getInstance("EC", "BC"); PrivateKey privateKey = keyFactory.generatePrivate(new ECPrivateKeySpec(new BigInteger(1, privateKeyBytes), new ECGenParameterSpec("secp256r1"))); // 生成公钥 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("EC", "BC"); keyPairGenerator.initialize(new ECGenParameterSpec("secp256r1")); KeyPair keyPair = keyPairGenerator.generateKeyPair(); PublicKey publicKey = keyPair.getPublic(); // 使用 ECDH 算法协商密钥 KeyAgreement keyAgreement = KeyAgreement.getInstance("ECDH", "BC"); keyAgreement.init(privateKey); keyAgreement.doPhase(publicKey, true); byte[] sharedSecret = keyAgreement.generateSecret(); System.out.println("Shared secret: " + Base64.getEncoder().encodeToString(sharedSecret)); } } ``` 请将您的私钥文件保存为 `private_key.pem`,并将其放置在可执行文件的同一目录中。注意,这段代码使用的是 secp256r1 椭圆曲线。如果您使用的是其他曲线,请相应地更改代码中的参数。同时,为了简化代码,我将协商密钥所需的公钥生成代码放在了程序中,您可以将其替换为您自己的公钥。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值