vsCTF

type
status
date
slug
tags
summary
category
icon
password

x0rr3al

早知道c语言有一个main调用main的操作,似乎是为数不多c++不支持的c操作?但是这里好像第一次见了?
存在反调,可以下掉反调看check,或者直接看逻辑
sub_5560774764F7 : 一个简单异或0x12
sub_55607747650A: 递归异或一个初始化好的表
单字节加密flag,全是异或,这里不需要提取,直接爆破即可:

challange

用比较复杂的stl(主要是vectorstring)进行数据操作,做了个类似RSA的乘方+取模然后加点异或生成了一个vector用于加密,但是加密逻辑只有异或,flag是50位的
这里不需要硬逆逻辑,下掉ptrace反调(这里原本有exit(0);已经nop掉了)
在check的地方把检查逻辑改掉(改成如果不相等则退出)
提取异或的key数据
直接梭就行(这里输入的是全1的flag,flag也刚好没有1,可以多用几个试几次):

teenage-wasm

说实话第一次做wasm...
选择的是Ghidra + wasm插件的反编译方案,还是比较清晰的
可以拿到一个js代码,和一个wasm代码,这里找不到button的处理handle,纠结了很久,然后友web手说可能是wasm里面注册了监听,orz真该学学web了...
js代码中大概是 wasm-bindgen编译的与wasm交互的产物,只负责中间件,将字符串共享给wasm,并接收共享字符串
可以直接来看wasm,代码很多,rust编译的也相对抽象,经过前面说的可能是监听的button可以翻翻代码,然后发现了这个
notion image
flush_messages
加密逻辑也很显眼...
虽然其实还并不是狠看懂这个怎么传回去的,但是提取数据异或一下真的就是flag了...(他真的很喜欢异或)
9-26: 感觉本来wasm就见得不多,会做的更是少,还是不要草草结束了这个题,把他给逆完整一点
直觉上flesh_message既然找不到x-ref,应该还是有更多处理逻辑的,首先是这里的比对
notion image
local_18拿到了param2(即用户的一个输入),与admin字符串进行了比对,如果不是admin会返回Login fail的提示
notion image
notion image
(可以右键更换数据类型)
这个地方感觉有机会,看看下面,找到了类似的结构:
notion image
但是这里没那么明显,先试试我怎么出的:
这里除去admin已经没有明显的全局变量了,能包含有字符信息的内容不多,然后突然意识到这里全都是可见字符:
notion image
那其实很蹊跷了,打印一下看看;感觉就很明显了,有明显的英文语法痕迹,逆转过来,这个就是密码...
回来看看逻辑,到底放在哪里
前面没注意,但是这里有个很明显的把参数提取成utf-8的操作:
notion image
然后存储local_18 -> local_68在下面进行比较
还是对这些符号不够敏感...
上一篇
BRICS ctf
下一篇
ASIS_CTF2023
Loading...
文章列表
Hi~, I ‘m moyao
reverse
pwn
pentest
iot
android
others
ctf
iOS