2023CISCN初赛WriteUp
00 分钟
2023-5-29
2024-11-11
type
status
date
slug
summary
tags
category
icon
password

Web

Unzip

notion image
notion image

backendservice

notion image
notion image
notion image
notion image
getFilters() 方法,这个方法一直调用下去会到shortcutType() 接口
poc:
名称为backcfg,和nacos client保持一致,vps开监听即可
notion image

dumpit

notion image

Misc

签到题

微信公众号获得提示,打字机python命令执行,直接读取/flag

被加密的生产流量

排除tcp流,第0流里面看到base编码特征。
notion image
提取出来整理一下,base32解密得flag

pyshell

连接后发现是python的命令行环境,发现屏蔽了很多字符,flag也被屏蔽了
尝试字符串拼接执行命令,测试后发现单双引号,下划线以及通配符没有被屏蔽,尝试拼接字符串
notion image
拼接出来就是flag

Crypto

可信度量

题目说明:
通过ssh连接,账号密码都是player,注意端口
这里用ssh工具连接
notion image
想到去年的非预期密码,经过一些试,发现存在非预期,直接拿到flag
grep -ra "flag" / 2>/dev/null
notion image
flag{7b775da1-f522-41fd-8089-0dfe87def0b5}

基于国密SM2算法的密钥密文分发

notion image

Reverse

easybyte

查壳,没有保护,64位,直接ida f5反编译
notion image
刚开始以为是OLLVM的虚假控制流,用d810插件没脱成功
只能动调,硬扣
先静态分析,发现是一个VM虚拟机题
notion image
notion image
然后开始动调
调式了一下发现有检查flag的函数
notion image
找到后修复函数,发现flag有固定形式
根据格式制作假flag进行动调
notion image
notion image
notion image
最后trace跟踪指令,发现flag参数是固定的,调试后得出
sum = (x1 + 0x1CE183) ^ 0x112DDF8E50094CA7 ^ 0x244FB9EB69445B4F sum = sum | (x2 + 0x88E3E5) ^ 0x10CA3D978AD743E3 ^ 0x75FE10F2BA170AF1 sum = sum | (x3 + 0x171378) ^ 0x0F3FB14121B8606D ^ 0x2206872240FC27DC sum = sum | (x4 + 0x8B3778) ^ 0x1A3DBFB3BBDAEEFB ^ 0x790B86D78A647422 sum == 0
然后写z3脚本
运行得出flag
notion image
flag{5bfe906ee4-e07e--96ca-49c69d13ca}

babyRE

附件是一个xml文件
notion image
开头有一个链接,
snap少二链接
notion image
导入xml文件,根据提示
notion image
修改一下
notion image
notion image
找到密文和加密逻辑后
notion image
写出exp
flag{12307bbf-9e91-4e61-a900-dd26a6d0ea4c}

ezAndroid

notion image
题目描述,有一个站,然后给了一个system附件
notion image
需要密码
在附件cpeweb.apk中逆向找到密码为AdminLogin
notion image
登录到后台,搜索了一下历史漏洞,试了文件上传等一系列操作
notion image
不行,然后题目说是附件里面的漏洞
然后继续逆向
在webserver里有一个目录穿越漏洞
notion image
利用get传参发包拿到flag
notion image
flag{15131359-6d71-45d3-b2ad-73e2f2335a7c}

Pwn

烧烤摊

打开附件,64位,静态链接的程序,猜测可以ret2system,保护没开PIE
notion image
程序功能,一个菜单
notion image
丢进ida边分析,边修复分析的伪代码
main函数:
notion image
买啤酒函数:
notion image
买烤串函数:
notion image
查看余额函数:
notion image
买摊函数:
notion image
改名函数:
notion image
这里存在一个栈溢出,我们这里通过构造payload完成execve()函数系统调用
要进入这个函数,首先money要大于10000
这里可以通过买-xx东西,完成反向money增加
notion image
漏洞利用思路,通过栈溢出完成ret2system
写exp
首先写好交互
notion image
payload
notion image
ropper找gadget,这里不写了
notion image

funcanary

保护全开
notion image
丢进ida64查看
notion image
分析发现是父进程,调试子进程
这种情况有种特性,就是子进程中的canary是不变的
所以可以通过one-byte-one手法,一个字节一个字节的爆破canary
题目开了pie不影响
栈溢出地址:
notion image
后门函数:
notion image
notion image
exp
因为64位,canary是8字节,最低位是0,所以爆7字节就行了
flag{01ef7c5b-e9c9-47bc-89c5-9e9e8bd2234b}
上一篇
从0到1复活wooyun
下一篇
简记-linux系统调用约定