02 2020 档案

摘要:exp 脚本 栈溢出,有 system 函数, rodata 段有 cat flag ,那就不需要拿 shell ,直接栈溢出 rop 调用 system('cat flag') 即可 阅读全文
posted @ 2020-02-29 20:03 不想取名字a 阅读(481) 评论(0) 推荐(0) 编辑
摘要:exp 脚本 C++写的程序,逆向分析有点费劲。注意到 password_checker 有 call rax 指令,倒推 rax 的来源,在 main 函数中把 rax 的来源覆盖为漏洞函数的地址即可 get shell 感谢 keer 师傅的指点! 阅读全文
posted @ 2020-02-29 19:40 不想取名字a 阅读(1177) 评论(0) 推荐(0) 编辑
摘要:exp 脚本 有 puts 函数,有栈溢出,第一次栈溢出 rop 用 puts 泄露 got 表,回到漏洞函数再次栈溢出 rop 执行 system('/bin/sh') 阅读全文
posted @ 2020-02-29 14:24 不想取名字a 阅读(503) 评论(0) 推荐(0) 编辑
摘要:[TOC] 逆向分析 new 函数 + records[v2]:存储 chunk 的地址,大小皆为 0xCu 。 + v3:存储 rec_int_print 函数地址用于打印存储的值和类型。 + (v3 + 4):存储 free 函数地址,用于释放 chunk 。 + (v3 + 8):存储用户输入 阅读全文
posted @ 2020-02-29 13:30 不想取名字a 阅读(903) 评论(0) 推荐(0) 编辑
摘要:exp 脚本 先 rop 用 write 泄露 got 表地址,计算 system 和 /bin/sh 的偏移,回到漏洞函数再次 rop 调用 system('/bin/sh') 阅读全文
posted @ 2020-02-29 00:09 不想取名字a 阅读(1072) 评论(0) 推荐(0) 编辑
摘要:exp 脚本 真的是 baby 难度,直接栈溢出跳转到后门函数 阅读全文
posted @ 2020-02-28 22:42 不想取名字a 阅读(1204) 评论(4) 推荐(0) 编辑
摘要:[TOC] 常规检查 逆向分析 create 函数 + (&unk_202040 + 4 i):置 1 记录 chunk 已创建 + (&unk_202044 + 4 i):存放 chunk 的大小 + qword_202048[2 i]:存储 chnk 的地址 write 函数 + sub_E26 阅读全文
posted @ 2020-02-28 22:23 不想取名字a 阅读(1141) 评论(0) 推荐(0) 编辑
摘要:[TOC] 利用思路 由于之前 house of spirit 时候已经逆向分析过,这里不再重复 + 伪造一个空闲 chunk。 + 通过 unlink 把 chunk 移到存储 chunk 指针的内存处。 + 覆盖 chunk 0 指针为 atoi 的 got 表地址并泄露。 + 覆盖 atoi 阅读全文
posted @ 2020-02-27 17:54 不想取名字a 阅读(1326) 评论(2) 推荐(1) 编辑
摘要:[TOC] 简介 之前在复现自己做出来的题时,一样的思路发现拿不了 shell 了,后来发现是栈迁移的坑。 问题 假设 32 位系统中,漏洞函数可以任意写入 0x00000000。 现在我们已经用双 leave 迁移栈,然后运用 rop 技术泄露 got 表地址,如下: 当我们泄露完地址,从返回地址 阅读全文
posted @ 2020-02-27 17:19 不想取名字a 阅读(234) 评论(0) 推荐(0) 编辑
摘要:[TOC] 原理 我们在利用 unlink 所造成的漏洞时,其实就是对 chunk 进行内存布局,然后借助 unlink 操作来达成修改指针的效果。 古老的 unlink 假设现在有物理空间连续的两个 chunk(Q,Nextchunk),其中 Q 处于使用状态、 Nextchunk 处于释放状态。 阅读全文
posted @ 2020-02-26 21:07 不想取名字a 阅读(297) 评论(0) 推荐(0) 编辑
摘要:[TOC] 常规检查 逆向分析 add 函数 我们可以看到,top chunk 到 chunk 0 的偏移为 0x60 ,使用 house of force 技巧,我们需要绕过 request2size(req) 宏,这里由于 0x60 是16字节对齐的,所以只要减去 SIZE_SZ 和 MALLO 阅读全文
posted @ 2020-02-26 17:43 不想取名字a 阅读(834) 评论(0) 推荐(0) 编辑
摘要:[TOC] 原理 House of Force 是一种堆利用方法,但是并不是说 House of Force 必须得基于堆漏洞来进行利用。如果一个堆(heap based)漏洞想要通过 House of Force 方法进行利用,需要一下条件: + 能够以溢出等方式控制到 top chunk 的 s 阅读全文
posted @ 2020-02-25 21:02 不想取名字a 阅读(351) 评论(0) 推荐(0) 编辑
摘要:[TOC] 常规检查 逆向分析 create_heap 函数 可以再次编辑 chunk 的内容,而且可以选择输入大小。如果我们这次输入的 size 比创建时大的话,就会导致堆溢出 delete 函数 释放对应 index 的 chunk,并将数组 heaparray 对应的地址置 0。 main 函 阅读全文
posted @ 2020-02-25 16:40 不想取名字a 阅读(680) 评论(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 不想取名字a 阅读(1437) 评论(0) 推荐(0) 编辑
摘要:[TOC] 常规检查 没有开启 RELRO ,意味我们可以修改 got 表地址。 逆向分析 Add 函数 + dword_804A288:存储构造的块地址 + (dword_804A288 + 13):在块地址的 13 字节处写入上一个块的地址 + (dword_804A288 + 25):在块地址 阅读全文
posted @ 2020-02-24 22:53 不想取名字a 阅读(788) 评论(0) 推荐(1) 编辑
摘要:JVM是如何执行方法调用的? 引出问题 通常来说,之所以不提倡可变长参数方法的重载,是因为java编译器可能无法决定应该调用哪个目标方法。在这种情况下,编译器会报错,并且提示这个方法调用有二义性。然而,java编译器直接将上述第一个调用识别为调用第二个方法,为什么呢? 重载与重写 在java程序里, 阅读全文
posted @ 2020-02-24 15:54 不想取名字a 阅读(354) 评论(0) 推荐(0) 编辑
摘要:[TOC] House Of Spirit House of Spirit 是 the Maleficarum 中的一种技术。该技术的核心在于在目标位置处伪造 fastbin chunk ,并将其释放,从而达到分配指定地址的 chunk 的目的。 House Of Spirit 的检测绕过 想要构造 阅读全文
posted @ 2020-02-24 15:39 不想取名字a 阅读(330) 评论(0) 推荐(0) 编辑
摘要:[TOC] 常规检查 逆向分析 程序有四个功能 + Allocate:分配内存大小并给出 index + Fill:输入 index ,并分配内存进行内容写入操作 + Free:输入 index ,释放相应的内存空间 + Dump:输入 index ,打印内容 Allocate 函数 + 分配的大小 阅读全文
posted @ 2020-02-23 21:32 不想取名字a 阅读(3175) 评论(0) 推荐(5) 编辑
摘要:常规检查 题目分析 "" 两个 read 函数,第一个 buf 只能栈溢出至 ret ,第二个 bank 在 bss 段中,所以思路很明显,要栈迁移到 bss 段中 "" 有 puts 函数和 read 函数,所以我们可以先用 puts 函数泄露出 libc 地址,然后用 read 函数写入 "" 阅读全文
posted @ 2020-02-23 02:03 不想取名字a 阅读(1710) 评论(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 不想取名字a 阅读(607) 评论(0) 推荐(0) 编辑
摘要:[TOC] 常规检查 逆向分析 题目程序较为简单,功能是创建字符串和删除字符串,其中创建字符串用 create ,删除字符串用 free 。 create 函数 当输入的字符串大于 0xf 字符时会另外开辟内存来存储字符串,否则存入 ptr 指针的地址中。通过分析我们还可以得到 + ptr :在小于 阅读全文
posted @ 2020-02-21 21:14 不想取名字a 阅读(740) 评论(0) 推荐(0) 编辑
摘要:[TOC] 常规检查 思路 首先通过 uaf 泄露出 password ,通过 password 能获得权限通过 flag 命令获得 flag。 exp 内容来源 "pwn练习3 shitsco" 阅读全文
posted @ 2020-02-20 21:49 不想取名字a 阅读(260) 评论(0) 推荐(0) 编辑
摘要:[TOC] 内存管理设计假设 1.具有长生命周期的大内存分配使用 mmap 。 2.特别大的内存分配总是使用 mmap 。 3.具有短生命周期的内存分配使用 brk ,因为用 mmap 映射匿名页,当发生缺页异常时, linux 内核为缺页分配一个新物理页,并将该物理页清 0 ,一个 mmap 的内 阅读全文
posted @ 2020-02-20 15:42 不想取名字a 阅读(993) 评论(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 不想取名字a 阅读(205) 评论(0) 推荐(0) 编辑
摘要:"覆盖子函数的ebp,这样在主函数结束时就能控制esp" 阅读全文
posted @ 2020-02-08 17:24 不想取名字a 阅读(290) 评论(0) 推荐(0) 编辑
摘要:"文件缺乏/bin/sh的情况下,利用字符串fflush中的sh完成getshell" 阅读全文
posted @ 2020-02-06 19:34 不想取名字a 阅读(144) 评论(0) 推荐(0) 编辑
摘要:"堆溢出写入freegot地址,打印泄露got地址,同时改free的got地址为system地址,再次free就能执行system" 阅读全文
posted @ 2020-02-06 14:46 不想取名字a 阅读(167) 评论(0) 推荐(0) 编辑
摘要:"将printf第一个参数置%s,第二个置got表地址,即可泄露函数地址" 阅读全文
posted @ 2020-02-06 14:39 不想取名字a 阅读(162) 评论(0) 推荐(0) 编辑
摘要:"在只有一块的情况下,free后指向main_arnea+0x58" 阅读全文
posted @ 2020-02-04 13:46 不想取名字a 阅读(213) 评论(0) 推荐(0) 编辑
摘要:"在没有可写可执行的段的情况下,调用mprotect修改段的权限,从而能写入并执行shellcode" 阅读全文
posted @ 2020-02-01 11:15 不想取名字a 阅读(248) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.