[BUUCTF][CISCN2019 华北赛区 Day1 Web2]ikun

知识点

JWT

JWT相关
JWT解密网站
JWT破解利用工具

PICKLE

Pickle模块中最常用的函数为:

(1)pickle.dump(obj, file, [,protocol])

   函数的功能:将obj对象序列化存入已经打开的file中。

   参数讲解:
          obj:想要序列化的obj对象。
          file:文件名称。
          protocol:序列化使用的协议。如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL,则使用最高的协议版本。

(2)pickle.load(file)

   函数的功能:将file中的对象序列化读出。

   参数讲解:

          file:文件名称。

(3)pickle.dumps(obj[, protocol])

   函数的功能:将obj对象序列化为string形式,而不是存入文件中。

    参数讲解:
          obj:想要序列化的obj对象。
          protocal:如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL,则使用最高的协议版本。

(4)pickle.loads(string)

   函数的功能:从string中读出序列化前的obj对象。
   参数讲解:
          string:文件名称。

附:Pickle协议
在这里插入图片描述

WP部分

第一步找到lv6

根据提示需要我们找到lv6,分析网址发现只需要有lv6.png即可
在这里插入图片描述
这里写个多线程的python脚本

import threading
import time

import requests


def go(st, ed):
    for i in range(st, ed):
        url = '替换你的url/shop?page='
        url += str(i)
        r = requests.get(url, timeout=2)
        if 'lv6.png' in r.text:
            print(r.url)
        time.sleep(0.1)


if __name__ == '__main__':
    threads = []
    for i in range(0, 10):
        t = threading.Thread(target=go, args=(i * 20, (i + 1) * 20))
        threads.append(t)

    for item in threads:
        item.start()

我这里得到了181页存在lv6

第二步BURP抓包修改

我们把折扣力度加大真爽,得到了这样一个页面
在这里插入图片描述
好吧只能admin访问,抓包再看一下
在这里插入图片描述
应该需要我们进行JWT破解利用
在这里插入图片描述
破解得到密钥1Kun
在这里插入图片描述
按照提示进行操作
在这里插入图片描述
修改后得到关键信息
在这里插入图片描述

pickel

这里我有点傻,一开始没注意到环境应该是python2,得到了正确的值
在这里插入图片描述
传入后得到flag
在这里插入图片描述

参考文章

[CISCN2019 华北赛区 Day1 Web2]ikun
Python反序列化漏洞的花式利用
Python魔法方法指南

猜你喜欢

转载自blog.csdn.net/solitudi/article/details/108345808