Hackergame 2020

0x01 普通的身份认证器(JWT伪造)

登入网站发现只能使用Guest用户登录,需要是admin才能获取flag

抓包发现存在jwt,在burp suite的http历史中搜索jwt版本

#网址安全的JWT版本
eyJ[A-Za-z0-9_-]*\.[A-Za-z0-9._-]*

#所有JWT版本(误报的可能性更高)
eyJ[A-Za-z0-9_\/+-]*\.[A-Za-z0-9._\/+-]*

得到结果发现jwt版本存在漏洞抓包token在 https://jwt.io/arrow-up-right 上分析,发现加密方法为RS256,尝试采用HS256的欺骗攻击

首先需要取得公钥

用dirsearch进行站点扫描,发现debug、docs和static三个网址

发现docs站点有回显,进入发现可以手动post token,而后向/debug站点post数据获得公钥

用指令:

将公钥转化为ascii码:

而后使用:

获得签名字符串:

再使用:

获取加密后的base64码组成最后一段签名

完整JWT签名:

包含信息:

抓包更改jwt,欺骗成功获取flag

Last updated