知识点
小端序说明,数据在内存里是如何存储的?下表里数据都为16进制

解题流程

题目Hint:更新 LibcSeacher 的 libc-database
checksec查看保护机制

存在Canary和NX。

0x28=40
0x10=16
0x29=41
0x300=768
0x2C=44
buf长度为48,而read读取长度为768
v5长度为520,而read读取长度为768
所以存在栈溢出漏洞

注意关注以下两条语句
.text:000000000040082C mov rax, fs:28h
.text:0000000000400835 mov [rbp+var_8], rax
canary存在rbp+var_8,可以在0x40082C下断点,

这篇博客深入剖析了Bugku CTF中的一道PWN题,涉及Canary保护机制和栈溢出漏洞。文章解释了小端序内存存储、解题流程,以及如何利用栈溢出泄露Canary值。作者通过设置断点观察寄存器变化,并使用ROPgadget找到所需 gadget,最终目标是调用system函数执行'/bin/sh'来控制系统。
最低0.47元/天 解锁文章
1361





