列表

详情


canary

平台   PWN  

题目作者: 神殇l布医

一  血: ‌‌‌‌‌山西小嫦娥

一血奖励: 2金币

解  决: 453

提  示:

描  述: canary绕过以及栈溢出

附  件: 下载

去做题

草稿箱. @ 2023-06-07 23:20:09 👍1

flag{e270d0006de4411s6d5a73bcd}


罗老师yyds @ 2022-06-07 23:20:09 👍1

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


Asteri5m @ 2022-06-07 23:20:09 👍1

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


liert @ 2023-08-07 23:20:09 👍1

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


Asteri5m @ 2022-06-07 23:20:09 👍2

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


main1o @ 2022-06-07 23:20:09 👍2

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


rogxo @ 2022-06-07 23:20:09 👍0

学习Canary绕过很好的题目


tomPeter15 @ 2022-06-07 23:20:09 👍0

学到了,学到了。多谢。


xiakesixju @ 2021-06-07 23:20:09 👍0

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


DTOFF @ 2022-06-07 23:20:09 👍0

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


Kant7 @ 2022-06-07 23:20:09 👍0

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


bock @ 2021-06-07 23:20:09 👍0

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


q起风了 @ 2021-06-07 23:20:09 👍0

我是弱鸡问一下,,,为什么远程可以通,但是本地不通呢?


RXCZERO @ 2021-06-07 23:20:09 👍0

canary 是不是要通过read下面的print泄露出来,然后进行exp?


AIYI @ 2021-06-07 23:20:09 👍0

大佬们,canary的偏移位置怎么算啊


HDUchuj @ 2021-06-07 23:20:09 👍1

就在 rbp - 8 处