Pwn
文章平均质量分 95
annEleven
这个作者很懒,什么都没留下…
展开
-
Tcache漏洞
tcache 为每个线程创建一个缓存(cache),从而实现无锁的分配算法,有不错的性能提升。正式提供了该机制,并默认开启647):放入相应 bins 中的 chunk 都会在其用户数据中包含,指向同 bins 中的下一个 chunk。原创 2023-04-06 20:03:41 · 255 阅读 · 1 评论 -
【堆漏洞 - Unsorted bin/ Large bin Attack】
malloc 从 unsorted bin 取 chunk 的时候,如果对应的 tcache bin 还未装满,则会将 unsorted bin 里的 chunk 全部放进对应的 tcache bin,然后再从 tcache bin 中取出。使 unsorted chunk 大于链表中最小的 chunk 时的利用失效,必须使 unsorted chunk 小于链表中最小的 chunk。unsorted chunk 小于链表中最小的 chunk 的时候会执行前一句,反之执行后一句。原创 2023-04-06 20:03:06 · 229 阅读 · 0 评论 -
【堆漏洞 - Fastbin attack】
漏洞发生于fastbin的chunk,且存在堆溢出、use-after-free 等能控制 chunk 内容的漏洞。原创 2023-04-06 20:02:13 · 257 阅读 · 0 评论 -
【堆漏洞-Off_by_one】
缓冲区溢出的一种,只能溢出一个字节普通 off_by_one ,修改堆上指针通过溢出修改堆块头,制造堆块重叠,达到泄露与改写目的-(1) 扩展被释放堆块-(2) 扩展已分配堆块-(3) 收缩被释放堆块-常见的漏洞场景1、 for循环多接收了一个字符2、 strcpy与strlen的行为不一致,strlen不计算入‘ \x00 ’,strcpy会把‘ \x00 ’一同复制3、判断字符串结束符为‘ \n ’,而不是‘ \x00 ’版本问题。原创 2023-04-06 19:57:08 · 1207 阅读 · 1 评论 -
【堆学习】
arena包含一片或数片连续的内存,堆块从中划分。//该变量用于控制程序串行访问同一个分配区,当一个线程获取了分配区之后,其它线程要想访问该分配区,就必须等待该线程分配完成后才能够使用。/* Serialize access. */ //flags 记录了分配区的一些标志,比如 bit0 记录了分配区是否有 fast bin chunk ,bit1 标识分配区是否能返回连续的虚拟地址空间 int flags;原创 2023-04-06 19:58:18 · 141 阅读 · 0 评论 -
Pwn-高阶ROP-[栈溢出]/篇3
大概调用过程:也就是我们这里先调用了write函数的plt表项触发了_dl_runtime_resolve函数(会push linkmap)之后会先到.rel.plt段,通过plt中给的push <偏移>在.rel.plt段中找到偏移处对应函数的重定位表项,再通过该表项的r_info(一个偏移量),找到.dynsym段中对应偏移量函数的符号表项,又通过该符号表项的st_name(也是一个偏移量)在.dynstr段找到对应的字符串,最后就会通过这个字符串(函数名)来调用该函数。原创 2022-05-11 19:38:38 · 1292 阅读 · 0 评论 -
Pwn中阶学习1-[栈溢出]/篇3
这种题型一般是在题目没有给出程序文件的时候,我们对程序一无所知,对程序是否栈溢出、栈溢出长度、gadget地址,源函数地址等只能进行爆破得到攻击条件: 程序存在栈溢出漏洞 服务器端的进程在崩溃后会重新启动,且启动进程地址与先前一样。目前 nginx, MySQL, Apache, OpenSSH 等服务器应用都是符合这种特性的。BROP绕过ASLR、NX、Canary保护步骤 爆破栈溢出长度 得到漏洞函数或main函数地址(stop gadget:使程序返回地原创 2022-04-14 15:33:33 · 1156 阅读 · 0 评论 -
Pwn基础学习1-[栈溢出]/篇2
继上一篇的内容题目3-ret2syscall定义控制程序执行系统调用原理不同于之前的 ret2text 和 ret2shellcode 题型,系统调用并不是执行程序中现有的代码或自己写进去的代码,其实就如其字面意思,系统调用就是我们让系统来调用一些函数,那么如何做到让系统来调用,需要满足以下几个条件:某函数的系统调用号【系统调用号表】—— 放在寄存器 eax 需传入某函数的参数 —— 放在寄存器 ebx、ecx、edx 一个指令 —— int 0x80int 0x80(软中断)原创 2022-03-29 22:49:48 · 2220 阅读 · 0 评论 -
Pwn基础学习1-[栈溢出]/篇1
是缓冲区溢出的一种,当缓冲区数据大于缓冲区大小时,缓冲区之外的有用数据就会被多出去的缓冲区数据覆盖改写,从而可能导致程序崩溃。原创 2022-03-14 18:02:06 · 6819 阅读 · 0 评论