老大终于对队伍里的密码手下手了(不是。。
老大召集队伍里的密码手一起刷crypto hack,一起上大分。为了更好的记录本次的学习成果决定对学习当中遇到的问题和收获做一些整理也算是对最近焦虑和压抑的科研生活做个调剂,而且crypto hack这个平台在网上公开的wp比较少,大家一起刷一波也能整理出不少wp供其他同学学习和参考,也算是公者千古了(不是。。
给自己点小鼓励:你要做冲出的黑马 而不是坠落的星星。
Signing Server (60pt)
题目描述

题目源代码
#!/usr/bin/env python3
from Crypto.Util.number import bytes_to_long, long_to_bytes
from utils import listener
class Challenge():
def __init__(self):
self.before_input = "Welcome to my signing server. You can get_pubkey, get_secret, or sign.\n"
def challenge(self, your_input):
if not 'option' in your_input:
return {
"error": "You must send an option to this server"}
elif your_input['option'] == 'get_pubkey':
return {
"N": hex(N), "e": hex(E) }
elif your_input['option'] == 'get_secret':
secret = bytes_to_long(SECRET_MESSAGE)
return {
"secret": hex(pow(secret, E, N)) }
elif your_input['option'] == 'sign':
msg = int(your_input['msg'], 16)
return {
"signature": hex(pow(msg, D, N)) }
else:
return {
"error": "Invalid

本文介绍了在Cryptohack平台上进行的两道RSA相关挑战,包括获取公钥、密文、签名等操作,以及如何利用RSA数字签名的原理解密获取flag。第一题通过获取flag的密文并解密得到flag,第二题则需构造特定消息的签名匹配服务器的签名来验证所有权。
最低0.47元/天 解锁文章
774

被折叠的 条评论
为什么被折叠?



