type
status
date
slug
summary
tags
category
icon
password
Web
Unzip
backendservice
getFilters() 方法,这个方法一直调用下去会到shortcutType() 接口
poc:
名称为backcfg,和nacos client保持一致,vps开监听即可
dumpit
Misc
签到题
微信公众号获得提示,打字机python命令执行,直接读取/flag
被加密的生产流量
排除tcp流,第0流里面看到base编码特征。
提取出来整理一下,base32解密得flag
pyshell
连接后发现是python的命令行环境,发现屏蔽了很多字符,flag也被屏蔽了
尝试字符串拼接执行命令,测试后发现单双引号,下划线以及通配符没有被屏蔽,尝试拼接字符串
拼接出来就是flag
Crypto
可信度量
题目说明:
通过ssh连接,账号密码都是player,注意端口
这里用ssh工具连接
想到去年的非预期密码,经过一些试,发现存在非预期,直接拿到flag
grep -ra "flag" / 2>/dev/null
flag{7b775da1-f522-41fd-8089-0dfe87def0b5}
基于国密SM2算法的密钥密文分发
Reverse
easybyte
查壳,没有保护,64位,直接ida f5反编译
刚开始以为是OLLVM的虚假控制流,用d810插件没脱成功
只能动调,硬扣
先静态分析,发现是一个VM虚拟机题
然后开始动调
调式了一下发现有检查flag的函数
找到后修复函数,发现flag有固定形式
根据格式制作假flag进行动调
最后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
flag{5bfe906ee4-e07e--96ca-49c69d13ca}
babyRE
附件是一个xml文件
开头有一个链接,
snap少二链接
导入xml文件,根据提示
修改一下
找到密文和加密逻辑后
写出exp
flag{12307bbf-9e91-4e61-a900-dd26a6d0ea4c}
ezAndroid
题目描述,有一个站,然后给了一个system附件
需要密码
在附件cpeweb.apk中逆向找到密码为AdminLogin
登录到后台,搜索了一下历史漏洞,试了文件上传等一系列操作
不行,然后题目说是附件里面的漏洞
然后继续逆向
在webserver里有一个目录穿越漏洞
利用get传参发包拿到flag
flag{15131359-6d71-45d3-b2ad-73e2f2335a7c}
Pwn
烧烤摊
打开附件,64位,静态链接的程序,猜测可以ret2system,保护没开PIE
程序功能,一个菜单
丢进ida边分析,边修复分析的伪代码
main函数:
买啤酒函数:
买烤串函数:
查看余额函数:
买摊函数:
改名函数:
这里存在一个栈溢出,我们这里通过构造payload完成execve()函数系统调用
要进入这个函数,首先money要大于10000
这里可以通过买-xx东西,完成反向money增加
漏洞利用思路,通过栈溢出完成ret2system
写exp
首先写好交互
payload
ropper找gadget,这里不写了
funcanary
保护全开
丢进ida64查看
分析发现是父进程,调试子进程
这种情况有种特性,就是子进程中的canary是不变的
所以可以通过one-byte-one手法,一个字节一个字节的爆破canary
题目开了pie不影响
栈溢出地址:
后门函数:
exp
因为64位,canary是8字节,最低位是0,所以爆7字节就行了
flag{01ef7c5b-e9c9-47bc-89c5-9e9e8bd2234b}