2023熵密杯第二关简析

来到前端登录界面如下,需要输入用户名,用户证书文件和证书对应的私钥。

 从提示来看,证书文件要求是PEM格式证书,base64编码。其他的都还不知道。不急往下看,答案应该都隐藏在给出的线索里。

获得一个“数字签名前置系统调试数据包.pcapng”文件,其中包含数字证书内容如下。将这段内容复制下来,保持为cer1.crt文件。

-----BEGIN CERTIFICATE-----
MIIBpjCCAUugAwIBAgIRAIQyrttkXywULI3KhGNxYFYwCgYIKoEcz1UBg3UwPjEO
MAwGA1UEChMFQkNTWVMxDjAMBgNVBAMTBUJDU1lTMQ8wDQYDVQQqEwZHb3BoZXIx
CzAJBgNVBAYTAk5MMB4XDTIzMDcxNzAzMjMyNVoXDTI0MDcxNzAzMjMyNVowNTEV
MBMGA1UEChMMRXhhbXBsZSBJbmMuMQswCQYDVQQLEwJJVDEPMA0GA1UEAxMGYWRt
aW4xMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEdTKwJfeYUBsH3rw8KlRiabJX
z3KxNcH2MuYl7ol27RLS5/nVvvlrY2iw2Ylni+CS+htLoScXpEBsuMzkPjG3VKMz
MDEwDgYDVR0PAQH/BAQDAgKkMAwGA1UdEwEB/wQCMAAwEQYDKgMEBApxd2VydHl1
aW9wMAoGCCqBHM9VAYN1A0kAMEYCIQCP9wit9wKLNhDB7qzK50PuMldu0WhEFRuk
ZDXegNcpjQIhAK+fiviPZu53F7cAGck8VijLOJFfN0q7xJIqJ4T+nujr
-----END CERTIFICATE-----

windows系统中打开cer1.crt证书具体内容就出来了。根据证书中字段,可以指导使用者是admin1,公钥算法使用的是SM2。所以前台登录所使用的用户名就是admin1,证书文件自然也就是从cer1.crt做适当修改而来,至于证书对应的私钥肯定是无法通过公钥获得的,一个可能的方式是构造公私钥对替换原来的证书中的公钥。当然证书中的公钥不是说替换就替换的,证书中的指纹(CA的签名)验证会保证数字证书的完整性和真实性。除非应用系统实现没有正确验证数字证书的有效性,那就要看看后台验证过程代码。

 获得到一个“login.go”后台登录处理程序源代码文件,分析后发现果然后台并未验证证书签名的有效性,也就是说这个证书的公钥是可以被替换而不被感知到。于是这里就利用SM2算法工具生成公私密钥对,如下。这里私钥就是登录界面要填入的第三个参数。

私钥:2923BE84E16CD6AE529049F1F1BBE9EBB3A6DB3C870C3E99245E0D1C06B747DE

公钥:C4758AF4FAE1A4991C5D0DC80F3E3ADD8E4A20CE4AC3F1447EA27C2BC70B51CADAB2ACFF2E63638FA4124A8BB776B2AF821FA128FDEA97732E58021BBDA5A1A9

到现在,就剩下最后一步了,将构造的公钥替换cer1.crt的公钥。具体过程可以是将base64编码的数字证书转换成hex格式,找到0475......B754,替换成04C4......A1A9。

这里解释下数字证书里的公钥信息编码是04+64字节公钥, 也就是SM2公钥的未压缩模式。

再将hex转回base64编码(转换工具Base64),保存为cer2.crt证书文件,到此登录界面需要的信息就都具备成功。

用户名:admin1

公钥文件:cer2.crt

私钥信息: KSO+hOFs1q5SkEnx8bvp67Om2zyHDD6ZJF4NHAa3R94=

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游鲦亭长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值