为Hack the Box挑战 - Under Construction和Secret编写
这两个脚本均执行Java Web Token密钥混淆攻击(CVE-2015-9235)。
要执行该攻击,攻击者需要知道服务器用来验证签名的公钥,并且服务器配置为使用HS256算法。由于HS256是一种对称密钥算法(相同的密钥用于签名和验证消息),我们可以使用公钥来签名我们篡改的令牌。由于Web服务器知道公钥,当它收到篡改的令牌时,会能够验证它。

python3 jwt-9235.py [-h] [token_location] [claim_key] [claim_value]
positional arguments:
token_location JWT令牌的位置(必须包含'pk'负载)
claim_key 要攻击的负载声明
claim_value 新的声明值
optional arguments:
-h, --help 显示此帮助信息并退出
如果未提供参数,应用程序将查找令牌文件 ./token,以 username 声明为目标,并将声明值替换为 ‘ or 1=1;–
pip install hashlib hmac base64 json argparse colorama