[CISCN2019 华东南赛区]Web4
[CISCN2019 华东南赛区]Web4
点击就进入了百度的页面,但是发现了url也发生了变化
尝试一下任意文件读取(/etc/passwd)
尝试一下读取flag
f12查看发现了cookie中的session为jwt格式,可能为flask伪造
先去解密一下session(https://jwt.io/)
解密结果为www-data,如果是flask伪造的话需要找到secret_key,而在网上搜索flask有关信息时发现里面可能存在一个app.py文件
然后再去任意文件哪里查找有没有app这样的关键词,但是只发现了app并没有发现app.py
尝试读取一下app.py
整理如下代码:
# encoding:utf-8
import re, random, uuid, urllib
from flask import Flask, session, request app = Flask(__name__)
random.seed(uuid.getnode())
app.config['SECRET_KEY'] = str(random.random()*233)
app.debug = True @app.route('/')
def index(): session['username'] = 'www-data' return 'Hello World! Read somethings' @app.route('/read')
def read(): try: url = request.args.get('url') m = re.findall('^file.*', url, re.IGNORECASE) n = re.findall('flag', url, re.IGNORECASE) if m or n: return 'No Hack' res = urllib.urlopen(url) return res.read() except Exception as ex: print str(ex) return 'no response' @app.route('/flag')
def flag(): if session and session['username'] == 'fuck': return open('/flag.txt').read() else: return 'Access denied'
if __name__=='__main__': app.run( debug=True, host="0.0.0.0" )
审计代码可得确实是session伪造,并且告诉我们username必须是fuck(if session and session['username'] == 'fuck': ),以及secret_key要利用随机数求得(app.config['SECRET_KEY'] = str(random.random()*233) ),但是种子需要用到uuid.getnode函数(random.seed(uuid.getnode()) ),uuid.getnode函数用于获得网络接口的mac地址,如果机器具有多个网络接口,则返回通用管理的mac地址,而不是通过本地管理的mac地址返回。管理的mac地址保证是全局唯一的。如果getnode函数无法获取mac地址,则他会按照rfc 4122中的建议返回带有多播位得随机48位数字。uuid.getnode函数,是网卡mac地址的十进制数,使用(/sys/class/net/eth0/address)读取一下
找到地址之后按照源代码中的提示,生成secret_key
然后去linux中使用flask-session-cookie-manager-master(GitHub - noraj/flask-session-cookie-manager: Flask Session Cookie Decoder/Encoder)构造出新的session,使用命令(python3 flask_session_cookie_manager3.py decode -c 'eyJ1c2VybmFtZSI6eyIgYiI6ImQzZDNMV1JoZEdFPSJ9fQ.Yw8ANw.2tf4dnk4ntx3KEsZf7HC8ByAGlA' -s '105.264175525')(python3 flask_session_cookie_manager3.py encode -s '105.264175525' -t "{'username': b'fuck'}")
然后返回原页面修改session即可
url直接读取flag
完结撒花
[CISCN2019 华东南赛区]Web4相关推荐
- [CISCN2019 华东南赛区]Web11
[CISCN2019 华东南赛区]Web11 继续刷题,今天这道题以前做过(类似的)很好懂. 开始拿到题目是一脸懵的,看到XFF伪造这个位置有点想法了,抓包那这儿是输入什么就显示什么吗?以前那道题就是 ...
- 体育技术机器学习金钱和灵感的圣杯
I claim that anyone with a math background and a love of baseball has at one time given serious thou ...
- 机器学习 深度学习技术区别_体育技术机器学习金钱和灵感的圣杯
机器学习 深度学习技术区别 I claim that anyone with a math background and a love of baseball has at one time give ...
- BUUCTF-社团考核
目录 1.[CISCN2019 华东南赛区]Web4 2.[GWCTF 2019]枯燥的抽奖 3.[NCTF2019]Fake XML cookbook 4.[SCTF2019]Flag Shop 5 ...
- BUUCTF(12_1-12_5)
//最近一直在准备四级所以鸽了几天 [GXYCTF2019]StrongestMind 让计算数字,计算一千次给flag 我们需要写一个脚本 import re import requests fro ...
- BUUCTF-刷题记录-7
MISC [GUET-CTF2019]soul sipse steghide工具分析得到一个文件,无密码 得到一个链接 文件头错误,修复一下 得到这么一串Unicode字符 进行解码,得到 4070 ...
- [BUU刷题记录]day01-起步
BUU-WEB 这是一个菜鸡的蜕变 先小记录一下题目环境部署必备的docker安装 sudo apt-get remove docker docker-engine docker.io contain ...
- buu(ssti模板注入、ssrf服务器请求伪造)
目录 目录 [CISCN2019 华东南赛区]Web11 [BJDCTF2020]EasySearch [De1CTF 2019]SSRF Me [CSCCTF 2019 Qual]FlaskLigh ...
- BUUCTF Web 第二页全部Write ups
更多笔记,可以关注yym68686.top 目录 [强网杯 2019]高明的黑客 [BUUCTF 2018]Online Tool [RoarCTF 2019]Easy Java [GXYCTF201 ...
最新文章
- 微生物培养的福音:一个直接用16S rDNA序列来预测其培养基配方的网站
- swift-初探webView与JS交互
- 精品思维导图,流程图模板分享
- Day 25: 联合Tornado、MongoDB 和 AngularJS 进行应用开发
- MYSQL:HAVING
- 【Pytorch神经网络理论篇】 05 Module类的使用方法+参数Parameters类+定义训练模型的步骤与方法
- 夸奖对方代码写的好_测一测,你写的代码性能好吗?
- adb命令查看报名和查看手机分辨率
- 在WSUS 3.0的环境中,部分客户机没有向WSUS服务器更新状态,该如何解决?
- cocosbuilder入门
- 需求分析和系统分析的区别
- 该内存不能为written或read的解决方案(比较全)
- ubuntu 下解压带密码的rar压缩包
- 多家技术公司喊停的人脸识别业务,被这家波兰网站玩火了!
- [机缘参悟-50]:鬼谷子-第十二符言篇-当好领导者的艺术:守其位,观四方,洞危险,广言路,虚谏言,定规则,明赏罚,符名实,得民心。
- 设计模式之工厂模式(factory pattern)
- SQL2022-8-10
- 英文自我介绍(考研/校内面试/复试)
- 竞赛排名_纪中1743_模拟
- 泡沫破裂的经济学原理