canaryPWN 未解决

分数: 20 金币: 2
题目作者: 神殇l布医
一  血: 不会修电脑
一血奖励: 2金币
解  决: 492
提  示:
描  述:
canary绕过以及栈溢出
其  他: pwn4
评论
pjcxxx 1月前

师傅们,recvline函数是不是只能接收格式化字符串本来的样子,不能接收赋值之后的样子?

回复 0

Caerus 2月前

先发送0x240-0x8个a泄露canary,再构造 rop 链在 rbp - 8 处填充泄露的canary,注意栈对齐,需要一定滑板

回复 0

da111sy 3月前

https://zaoganmaqule.github.io/2024/08/21/bugku-ctf%E7%9A%84pwn%E9%A2%98%E8%A7%A3/#more

回复 0

草稿箱. 1年前

flag{e270d0006de4411s6d5a73bcd}

回复 1

罗老师yyds 2年前

通过溢出canary的00字节,泄露出一些东西,然后第二次就直接溢出获得shell了,有system,有bin/sh,,有canary

回复 1

Asteri5m 2年前

远端的环境是咋样的,就还是有点奇怪,说一下问题: 远程能通,本地的话是会报错,调试了发现是system函数的问题,直接将返回地址设置为system就会出问题。 解决方法: 将payload的system的地址替换为 call system的地址。例如hint函数里的call _system (0x40080C) 然后本地也能通。 但是为什么直接system会出问题还不清楚

回复 1
liert 1年前

可能是你那个版本的system函数里面有检测栈对齐的代码,导致栈空间变化从而导致程序运行出错,你可以返回两次ret指令在返回到system,看看会不会报错

回复 1

Asteri5m 2年前

@main1o 不行奥,但是能打通就好(手动滑稽)

回复 2

main1o 2年前

这个什么原因啊,试了一下也是,改成call _system的地址就打得通,jmp _system的就不可以,老哥你解决了没

回复 2

rogxo 3年前

学习Canary绕过很好的题目

回复 0

tomPeter15 3年前

学到了,学到了。多谢。

回复 0

xiakesixju 3年前

问问师傅们,这题wp里面的rid是什么呀,我在ida里面找不到这个玩意儿,萌新求助。。。。

回复 0
DTOFF 3年前

rdi是一个寄存器,x64中经常使用rdi优先传参。

回复 0

Kant7 3年前

你说的是rdi寄存器吧,里面是函数调用时的第1个参数

回复 0

bock 3年前

为什么远程可以通,但是本地不通呢?

回复 0

WriteUp

image
SillyRabbit

10 金币

评分(3)

解题动态

255a 攻破了该题 1天前
15346899030 攻破了该题 3天前
nhyu 攻破了该题 5天前
pbidle 攻破了该题 6天前
13763327438 攻破了该题 8天前
2072159645 攻破了该题 15天前
liusongxn 攻破了该题 21天前
lizhijie 攻破了该题 22天前
tonycai 攻破了该题 23天前
3570603062 攻破了该题 1月前
0x00dream 攻破了该题 1月前
JiongW 攻破了该题 1月前
kun 攻破了该题 1月前
mk012 攻破了该题 1月前
Reinwi 攻破了该题 1月前
pjcxxx 攻破了该题 1月前
1632416193 攻破了该题 1月前
LL2003 攻破了该题 1月前
roaea 攻破了该题 1月前
tabwux 攻破了该题 1月前
问题反馈