4月初有很多比赛,每个比赛都做了一些题,难题大多是hash师傅教的。
SpaceHeroesCTF
Easy Crypto Challenge
1 | y^2 = x^3 + ax + b |
用hellman算法可以解出私钥na,明文为C - na*KG:
1 | M = 11648516937377897327 |
NSSCTF Round#1 Basic
number_by_number
1 | import hashlib |
分析签名参数,有:
高斯消元消去nounce以后求逆解出x(flag):
1 | import hashlib |
MidnightSunCTF
pelles_rotor_supported_arithmetic
1 | #!/usr/bin/python3 |
exp:
1 | from pwn import * |
UMassCTF
Web1
考察jwt,因为web学的很少所以第一次见到jwt就顺便学习了一波。
关于jwt:https://blog.csdn.net/weixin_45070175/article/details/118559272
首先题目给了签名接口的git项目地址,去访问发现隐藏了代码,去看提交的history找到所有代码;分析代码找到关键点:
即post的数据会通过该接口签名生成完整的jwt。
第二步,请求get_flag,bp抓包看jwt,base64解码发现user字段是anonymous,要获取flag需要把这个改为admin,但这样之后签名值sign发生改变,所以需要把改为admin之后的header和data base64加密以后和在一起并去掉原来的签名post到服务器让服务器再签一次名(重放),然后拿到之后再把token修改一下提交给服务器获得flag。
quickmath
交互题,计算1000次服务器发送的加减乘除,pwntool直接自动化处理:
1 | from pwn import * |