上一页 1 2 3 4 5 6 ··· 9 下一页
摘要: 若为off by one 设计出来的假chunk应该是0x90不是0x98。 阅读全文
posted @ 2022-01-14 14:04 ATKevin 阅读(40) 评论(0) 推荐(0) 编辑
摘要: magic fmtarg+地址 (字符串) 阅读全文
posted @ 2022-01-14 13:47 ATKevin 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 当ret2syscall的题目中没有/bin/sh的时候,有两种方法: 1.拼凑出字符串'/bin/sh' 2.直接用ROPgadget拼凑出ROP链 ROPgadget --binary rop --ropchain 3.如果我们需要多次系统调用,就只能用这个命令来找int 0x80 :ROPga 阅读全文
posted @ 2022-01-13 12:21 ATKevin 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 函数特性: puts输出后会加\n printf和puts遇到\0停止 strcpy 字符串复制函数。复制时,遇到结束符 \x00 才会停止复制。复制结束后,会在最后写入一个结束符 \x00 。 在read函数中,第三个参数的类型是size_t,该类型相当于unsigned long int,属于无 阅读全文
posted @ 2022-01-13 11:59 ATKevin 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 64位使用寄存器,分别用rdi,rsi,rdx,rcx,r8,r9作为第1-6个参数,rax作为返回值. 当程序调用call的时候,会将下一个地址中的值压入栈中,直接去执行了system(“sh”),所以就不需要返回地址了 eg: wustctf2020_getshell_2 阅读全文
posted @ 2022-01-13 11:53 ATKevin 阅读(20) 评论(0) 推荐(0) 编辑
摘要: houseoforange_hitcon_2016 https://blog.csdn.net/yongbaoii/article/details/114649586?utm_source=app&app_version=4.18.0&code=app_1562916241&uLinkId=usr1 阅读全文
posted @ 2021-11-26 17:35 ATKevin 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 第二次写这道题,收获颇多 总结: 1.利用unsorted_bin分割chunk后,后面的chunk的fd会保留main_arena的偏移值。并且要注意fd在地址最后字节为00的地方,才可以泄露。并且第一次释放掉chunk0后,再次申请时,description的值要大于第一次申请的chunk0,让 阅读全文
posted @ 2021-11-12 21:04 ATKevin 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 1.利用off-by-one将chunk0修改后,释放掉chunk1,然后chunk1进入unsorted_bin中,申请一个合适大小的堆块,使剩余部分的刚好与chunk2重叠,最后通过show chunk2的内容泄露main_arena的地址。 注意:当申请一个从unsorted_bin中切割的堆 阅读全文
posted @ 2021-10-10 20:21 ATKevin 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 常见的类型: 1. int my_gets(char *ptr,int size) { int i; for(i=0;i<=size;i++) { ptr[i]=getchar(); } return i; } int main() { void *chunk1,*chunk2; chunk1=ma 阅读全文
posted @ 2021-10-02 16:39 ATKevin 阅读(77) 评论(0) 推荐(0) 编辑
摘要: exp: from pwn import * from LibcSearcher import LibcSearcher #sh=remote("node3.buuoj.cn",25984) sh = process("./heapcreator") elf=ELF('./heapcreator') 阅读全文
posted @ 2021-09-28 18:04 ATKevin 阅读(71) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 9 下一页