上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
摘要: [TOC] 常规检查 逆向分析 create_heap 函数 可以再次编辑 chunk 的内容,而且可以选择输入大小。如果我们这次输入的 size 比创建时大的话,就会导致堆溢出 delete 函数 释放对应 index 的 chunk,并将数组 heaparray 对应的地址置 0。 main 函 阅读全文
posted @ 2020-02-25 16:40 PwnKi 阅读(667) 评论(0) 推荐(2) 编辑
摘要: [TOC] 概述 + Unsorted Bin Attack ,该攻击与 Glibc 堆管理中的 Unsorted Bin 的机制紧密相关。 + Unsorted Bin Attack 被利用的前提是控制 Unosrted Bin Chunk 的 bk 指针。 + Unsorted Bin Atta 阅读全文
posted @ 2020-02-25 10:10 PwnKi 阅读(1373) 评论(0) 推荐(0) 编辑
摘要: [TOC] 常规检查 没有开启 RELRO ,意味我们可以修改 got 表地址。 逆向分析 Add 函数 + dword_804A288:存储构造的块地址 + (dword_804A288 + 13):在块地址的 13 字节处写入上一个块的地址 + (dword_804A288 + 25):在块地址 阅读全文
posted @ 2020-02-24 22:53 PwnKi 阅读(760) 评论(0) 推荐(1) 编辑
摘要: JVM是如何执行方法调用的? 引出问题 通常来说,之所以不提倡可变长参数方法的重载,是因为java编译器可能无法决定应该调用哪个目标方法。在这种情况下,编译器会报错,并且提示这个方法调用有二义性。然而,java编译器直接将上述第一个调用识别为调用第二个方法,为什么呢? 重载与重写 在java程序里, 阅读全文
posted @ 2020-02-24 15:54 PwnKi 阅读(349) 评论(0) 推荐(0) 编辑
摘要: [TOC] House Of Spirit House of Spirit 是 the Maleficarum 中的一种技术。该技术的核心在于在目标位置处伪造 fastbin chunk ,并将其释放,从而达到分配指定地址的 chunk 的目的。 House Of Spirit 的检测绕过 想要构造 阅读全文
posted @ 2020-02-24 15:39 PwnKi 阅读(320) 评论(0) 推荐(0) 编辑
摘要: [TOC] 常规检查 逆向分析 程序有四个功能 + Allocate:分配内存大小并给出 index + Fill:输入 index ,并分配内存进行内容写入操作 + Free:输入 index ,释放相应的内存空间 + Dump:输入 index ,打印内容 Allocate 函数 + 分配的大小 阅读全文
posted @ 2020-02-23 21:32 PwnKi 阅读(3107) 评论(0) 推荐(5) 编辑
摘要: 常规检查 题目分析 "" 两个 read 函数,第一个 buf 只能栈溢出至 ret ,第二个 bank 在 bss 段中,所以思路很明显,要栈迁移到 bss 段中 "" 有 puts 函数和 read 函数,所以我们可以先用 puts 函数泄露出 libc 地址,然后用 read 函数写入 "" 阅读全文
posted @ 2020-02-23 02:03 PwnKi 阅读(1597) 评论(4) 推荐(1) 编辑
摘要: 第一次执行 malloc + size = 128k:使用 mmap 函数, kernel 中 sys_mmap + size bk = BK 及 BK fd = FD 来更改任意内存体位置 detection in malloc + size 是 fastbin 的情况 + memory corr 阅读全文
posted @ 2020-02-23 01:40 PwnKi 阅读(588) 评论(0) 推荐(0) 编辑
摘要: [TOC] 常规检查 逆向分析 题目程序较为简单,功能是创建字符串和删除字符串,其中创建字符串用 create ,删除字符串用 free 。 create 函数 当输入的字符串大于 0xf 字符时会另外开辟内存来存储字符串,否则存入 ptr 指针的地址中。通过分析我们还可以得到 + ptr :在小于 阅读全文
posted @ 2020-02-21 21:14 PwnKi 阅读(727) 评论(0) 推荐(0) 编辑
摘要: [TOC] 常规检查 思路 首先通过 uaf 泄露出 password ,通过 password 能获得权限通过 flag 命令获得 flag。 exp 内容来源 "pwn练习3 shitsco" 阅读全文
posted @ 2020-02-20 21:49 PwnKi 阅读(259) 评论(0) 推荐(0) 编辑
摘要: [TOC] 内存管理设计假设 1.具有长生命周期的大内存分配使用 mmap 。 2.特别大的内存分配总是使用 mmap 。 3.具有短生命周期的内存分配使用 brk ,因为用 mmap 映射匿名页,当发生缺页异常时, linux 内核为缺页分配一个新物理页,并将该物理页清 0 ,一个 mmap 的内 阅读全文
posted @ 2020-02-20 15:42 PwnKi 阅读(965) 评论(0) 推荐(0) 编辑
摘要: [TOC] heap and arena data structures _heap_info + mstate ar_ptr:指向分配区的指针 + struct _heap_info ptr:指向上一个 heap_info 结构 + size_t size:分配堆大小 + char pad[... 阅读全文
posted @ 2020-02-19 20:18 PwnKi 阅读(200) 评论(0) 推荐(0) 编辑
摘要: "覆盖子函数的ebp,这样在主函数结束时就能控制esp" 阅读全文
posted @ 2020-02-08 17:24 PwnKi 阅读(287) 评论(0) 推荐(0) 编辑
摘要: "文件缺乏/bin/sh的情况下,利用字符串fflush中的sh完成getshell" 阅读全文
posted @ 2020-02-06 19:34 PwnKi 阅读(140) 评论(0) 推荐(0) 编辑
摘要: "堆溢出写入freegot地址,打印泄露got地址,同时改free的got地址为system地址,再次free就能执行system" 阅读全文
posted @ 2020-02-06 14:46 PwnKi 阅读(163) 评论(0) 推荐(0) 编辑
摘要: "将printf第一个参数置%s,第二个置got表地址,即可泄露函数地址" 阅读全文
posted @ 2020-02-06 14:39 PwnKi 阅读(157) 评论(0) 推荐(0) 编辑
摘要: "在只有一块的情况下,free后指向main_arnea+0x58" 阅读全文
posted @ 2020-02-04 13:46 PwnKi 阅读(209) 评论(0) 推荐(0) 编辑
摘要: "在没有可写可执行的段的情况下,调用mprotect修改段的权限,从而能写入并执行shellcode" 阅读全文
posted @ 2020-02-01 11:15 PwnKi 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 正确返回system的地址的情况下,无法拿shell "通过Ex师傅的博客找解决方法" 简单来说就是返回地址处加个ret,使rsp能栈对齐 阅读全文
posted @ 2020-01-31 10:16 PwnKi 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 核心结构体分析 malloc_state Binmap binmap一共128bits,16字节,4个int大小,binmap按int分成4个block,每个block有32个bit。 + idx2block:计算出该 bin 在 binmap 对应的 bit 属于哪个 block + idx2bi 阅读全文
posted @ 2020-01-30 19:48 PwnKi 阅读(211) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页