2019-05-14 Tell Me Something 题目信息 Do you have something to tell me? nc pwn.jarvisoj.com 9876 guestbook.d3d5869bd6fb04dd35b29c67426c0f05 checksec只开了NX 1234567$ checksec --file guestbook[*] '/Users/miao//... 続きを読む…
2019-05-13 学习笔记 Pwn学习笔记17:其他一些技术简介 PartialOverwrite 只更改func@got低位两个字节的值,可以替换为前后0x0000~0xffff范围内的地址 修改的两个字节中,ASLR只影响高4位(低12位不受ASLR影响) 也就是说,即使不泄漏地址,也有1/16的概率调用到想要的地址 重写stack上返回地址的低位三个字节也是可能的 CAROP(potetisensei和自己命名) 意思是Calc&Adjus... 続きを読む…
2019-05-10 学习笔记 Pwn学习笔记16:PIE与canary ROP对策 - PIEPIE(Position Independent Executables) .text区域的地址也进行随机化 所有的汇编代码中不包含绝对地址 全都使用相对地址 二进制文件被加载到内存时,基本是随机映射的 没有可以提前确定的固定地址 PIE绕过 – 多段memory leak + ret2libc等 看起来非常严格,因为完全没有固定地址,但如果能够多次利用漏... 続きを読む…
2019-05-10 学习笔记 Pwn学习笔记15:Full-RELRO与library GOT overwrite对策 – Full-RELRO GOT可以重写会产生问题 Full-RELRO使其只读 这里整个section被设置为只读属性(只能在二进制启动时初始化写入),Full-RELRO (RELocation Read-Only) 编译选项: gcc -Wl,-z,relro,-z,now NX+ASLR+Full-RELRO绕过1 –ret2dl_run... 続きを読む…
2019-05-09 学习笔记 进阶ROP及libc 有用的ROP技巧__libc_csu_init 从stack中将值加载到寄存器的通用gadget x86和x86_64中都存在,x86_64中这个会很方便 经常找不到pop rdi; ret这类,我们可以通过这种方式设置rdi 可以从stack经过r13设置rdi的值,但是需要注意只能设置32位,因为这里是edi而不是rdi alarm(x) 在x86/x64中,想要通过ROP... 続きを読む…
2019-04-23 学习笔记 ropasaurusrex level3 至今为止都是调用system(“/bin/sh”)的攻略方式 system()超甜 接下来在chroot环境下运行level2 system()隐式调用”/bin/sh” 调用system(command)时,内部是这样 execve(“/bin/sh”, &[“-c”, command, NULL], envp) 这意味着,chroot环境下,调用system会失败 需要... 続きを読む…
2019-04-22 学习笔记 ropasaurusrex level2 ROP区域较小的情况 改变read的size 256字节 -> 160字节 限制写入size1$ xxd -p ropasaurusrex | sed -e 's/c744240800010000/c7442408a0000000/' | xxd -r -p > ropasaurusrex2 确认123456789$ diff &... 続きを読む…
2019-04-19 学习笔记 Plaid CTF 2013 - pwn200 – ropasaurusrex Plaid CTF 2013 - pwn200 – ropasaurusrex 根据难度可以分成Level 1 ~ 5 Level 1(原始二进制)会详细讲解 后面的难度自行探索 ropasaurusrex攻略(Level 1)查看x86二进制文件文件可以在这里下载: http://shell-storm.org/repo/CTF/PlaidCTF-2013/Pwnable/ropasau... 続きを読む…
2019-04-15 学习笔记 Pwn学习笔记14:stack pivot与Off-by-one ROP的问题点ROP需要一个较大的溢出缓冲区 因为只包含一些细分的小指令,要发送的数据不可避免的增加 如果在srack返回地址下没有较大的溢出,就会很糟糕 如果没有足够的溢出缓冲区该怎么办? stack pivot 溢出量问题绕过 - stack pivot stack pivot 使用ret2plt等将后续ROP加载到bss(适当区域) 通过pop ebp; ret来调整... 続きを読む…
2019-04-12 学习笔记 Pwn学习笔记13:ROP与DROP ASLR绕过 - 方式2在ASLR中,并非所有地址都是随机的 也可以利用.text区域 NX+ASLR绕过2 - ROPROP(Return Oriented Programming) 狭义:想要执行的代码细分后在.text区域搜索合并 RX权限,即能够执行的只有.text区域,因此想办法使用.text区域 广义:除了狭义的ROP之外,也包括ret2plt/ret2libc之类的... 続きを読む…