摘要: 这也是一道retlibc的题目,首先我们需要泄露canary的值。绕过保护。 这里我们覆盖canary的最后一个字节,打印出canary的值。 1 from pwn import* 2 #sh = remote("182.116.62.85", 27056) 3 sh = process('./li 阅读全文
posted @ 2022-01-07 16:43 Mua_Uncle_W 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 这一道retlibc的题目很常规。不在过多介绍,简单记录一下。 from pwn import * context.arch = 'amd64' context.log_level = 'debug' context.terminal = ['tmux','sp','-h'] elf = ELF(' 阅读全文
posted @ 2022-01-07 16:40 Mua_Uncle_W 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 这道题目是格式化字符串漏洞的一道题目,还涉及到了重定向。记录一下,这是可是详细讲解,不会的同学可以看一下。 我们来看一下题目内容 主函数没有什么说的,直接来看vuln函数。 题目大眼一看有两处格式化字符串漏洞。遇到这个一般是先找偏移。通常来说是先输入一串%p,通过输出的内容来数偏移。但是这里一开始只 阅读全文
posted @ 2021-11-22 10:24 Mua_Uncle_W 阅读(216) 评论(0) 推荐(1) 编辑
摘要: 这道题真简单,xue微说一下。 覆盖v2的值让v2+v3+v4=666 gdb调试一下 from pwn import *​ p = remote("pwn.challenge.ctf.show", 28159)​ p.send("a" * 0x24 + p32(664))​ p.interacti 阅读全文
posted @ 2021-11-14 11:38 Mua_Uncle_W 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 这道题目看很多题解是使用 one_gadget 做的,还有的是使用 LibcSearcher 模块做的。我刚开始看见题目给了 libc库,但是我总是打不通。 这道题如果使用 LibcSearcher 来做就是常规的先泄露canary值后按照ret2libc来打就可以了。 来先看一下,程序的主要部分。 阅读全文
posted @ 2021-11-10 17:27 Mua_Uncle_W 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 比赛题目记录一下,这是唯一一道栈的题目。其他都是堆的题目,堆还没怎么开始学习。 这是一道需要修改 __stack_chk_fail@got 地址来绕过canary 的题目。程序中没有 printf 函数我们没有办法泄露canary 的值。来看题目: 开启了Canary 和 NX。没有开启 RELRO 阅读全文
posted @ 2021-11-08 19:06 Mua_Uncle_W 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 这是一道数组越界的题目,记录一下。 常规操作。 int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // eax unsigned int v5; // [esp+18h] [ebp-90h] unsi 阅读全文
posted @ 2021-11-07 20:01 Mua_Uncle_W 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 攻防世界得题目代码很长啊,这就造成一定地迷惑性,提高了代码阅读地困难。 __int64 __fastcall main(__int64 a1, char **a2, char **a3) { char buf[55]; // [rsp+0h] [rbp-50h] char v5; // [rsp+3 阅读全文
posted @ 2021-11-03 20:25 Mua_Uncle_W 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 这是一道‘强网’拟态防御线上比赛的一道题目。当时没有做出来,现在来记录一下。 首先这是一道 canary 加libc的题目。 保护全开,对于青铜段位的我来说可是下了一跳。 int __cdecl main(int argc, const char **argv, const char **envp) 阅读全文
posted @ 2021-10-31 19:44 Mua_Uncle_W 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 这两个题考查的战迁移。栈迁移就是在可以发生栈溢出的情况下但是溢出长度不够,不能装下我们构造的rop链。我们需要把栈顶指针和栈底指针迁移到其他可写的地方。 栈迁移需要借助两个汇编指令: * leave mov esp,ebp pop ebp *ret pop eip 这个图是引用看雪论坛上( yich 阅读全文
posted @ 2021-10-28 17:25 Mua_Uncle_W 阅读(113) 评论(0) 推荐(0) 编辑