评分(4)
解题动态
skncqe 攻破了该题 18小时前
路人甲1123 攻破了该题 1天前
Kur0Ai1uro. 攻破了该题 1天前
北鹤 攻破了该题 4天前
Mori. 攻破了该题 4天前
Gnn 攻破了该题 6天前
夜黎 攻破了该题 6天前
dsh 攻破了该题 7天前
Audience00 攻破了该题 7天前
yuhuan 攻破了该题 10天前
niubill 攻破了该题 12天前
af 攻破了该题 12天前
兰小方 攻破了该题 14天前
huling 攻破了该题 15天前
qunxing 攻破了该题 16天前
qqqqqwwwwww 攻破了该题 18天前
cxller 攻破了该题 19天前
hjk888 攻破了该题 25天前
pinus 攻破了该题 26天前
评论
Fredjoker 5月前
举报
这题是两段式利用: 第一段用名字输入溢出第一个缓冲区,覆盖 canary 的最低字节,把 printf("Hello %s") 变成 canary 泄露;第二段在消息输入里带上正确 canary,再 ROP 到 system("/bin/sh"),最后发 `cat flag``。
nihaolmb 1年前
举报
为什么要用_system函数地址0X400660,而不用system函数地址0X400442呢?main主函数里面也没有跳转到_system函数呀
pjcxxx 1年前
举报
师傅们,recvline函数是不是只能接收格式化字符串本来的样子,不能接收赋值之后的样子?
Caerus 1年前
举报
先发送0x240-0x8个a泄露canary,再构造 rop 链在 rbp - 8 处填充泄露的canary,注意栈对齐,需要一定滑板
da111sy 2年前
举报
https://zaoganmaqule.github.io/2024/08/21/bugku-ctf%E7%9A%84pwn%E9%A2%98%E8%A7%A3/#more
草稿箱. 3年前
举报
flag{e270d0006de4411s6d5a73bcd}
罗老师yyds 4年前
举报
通过溢出canary的00字节,泄露出一些东西,然后第二次就直接溢出获得shell了,有system,有bin/sh,,有canary
Asteri5m 4年前
举报
远端的环境是咋样的,就还是有点奇怪,说一下问题: 远程能通,本地的话是会报错,调试了发现是system函数的问题,直接将返回地址设置为system就会出问题。 解决方法: 将payload的system的地址替换为 call system的地址。例如hint函数里的call _system (0x40080C) 然后本地也能通。 但是为什么直接system会出问题还不清楚
liert 3年前
举报
可能是你那个版本的system函数里面有检测栈对齐的代码,导致栈空间变化从而导致程序运行出错,你可以返回两次ret指令在返回到system,看看会不会报错
Asteri5m 4年前
举报
@main1o 不行奥,但是能打通就好(手动滑稽)
main1o 4年前
举报
这个什么原因啊,试了一下也是,改成call _system的地址就打得通,jmp _system的就不可以,老哥你解决了没
rogxo 4年前
举报
学习Canary绕过很好的题目
tomPeter15 5年前
举报
学到了,学到了。多谢。