BRICS ctf

type
status
date
slug
tags
summary
category
icon
password

shellcode

逻辑全在init_array里面
notion image
随便搜搜可以找到这个:
notion image
也就是说,main里面会触发这个:
notion image
notion image
至此,信息就比较清晰了:
main调用f占位符重写的函数,在这里会先scanf一个任意字符串,和一个操作数
接着触发print,可以在上面的任意字符串中构造占位符,将需要的flag读入,具体的读入需求可以找到;
notion image
这个check函数,并且它的占位符是R:
notion image
也就是每轮的这个位置会check一次
即我们需要调用一个占位符重写函数把flag先写到bss段里面,翻找以后只有这个,对于的占位符是p
notion image
notion image
那么可以猜测,我们需要对应flag的位数传入%p,再输入flag存到它的模拟栈上
根据这些占位符,可以大概找一下流程:
即:
notion image
大概逻辑是:
然后爆破求解就行
本来或许以为到这里就快出了?
那么为啥讨厌ios呢,调不起来,然后仔细一看发现
这里十个占位符只有三个注册的有参函数却传入了七个值......
notion image
那既然不能动调去直接看,那先自己写个程序测测呗,反正结束了慢慢学
看起来后面几个参数理论上用不到,但是感觉很不合理,遂不想做了
不过这个玩意在藏东西上其实有点意思,可以来出个小题玩一下,刚好又差不多准备搞个出虚拟机的玩,那就试试
9-29: 不对,想了想应该还是ida抽风,估计看看汇编调用的话这些参数问题不大
不过出题已经放在list上了,先把题出了看看,再看有没有时间把这个题给做了,最近确实会比较忙
上一篇
mapleCTF2023
下一篇
vsCTF
Loading...
目录
文章列表
Hi~, I ‘m moyao
reverse
pwn
pentest
iot
android
others
ctf
iOS