自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Tcache漏洞

tcache 为每个线程创建一个缓存(cache),从而实现无锁的分配算法,有不错的性能提升。正式提供了该机制,并默认开启647):放入相应 bins 中的 chunk 都会在其用户数据中包含,指向同 bins 中的下一个 chunk。

2023-04-06 20:03:41 305 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 276

原创 【堆漏洞 - Fastbin attack】

漏洞发生于fastbin的chunk,且存在堆溢出、use-after-free 等能控制 chunk 内容的漏洞。

2023-04-06 20:02:13 331

原创 【堆漏洞-Use after free】

释放堆时没有将堆指针设为NULL,使得可以继续使用这个堆指针操作空中(执行或修改)释放堆中的内容。

2023-04-06 20:01:19 169

原创 【堆学习】

arena包含一片或数片连续的内存,堆块从中划分。//该变量用于控制程序串行访问同一个分配区,当一个线程获取了分配区之后,其它线程要想访问该分配区,就必须等待该线程分配完成后才能够使用。/* Serialize access. */ //flags 记录了分配区的一些标志,比如 bit0 记录了分配区是否有 fast bin chunk ,bit1 标识分配区是否能返回连续的虚拟地址空间 int flags;

2023-04-06 19:58:18 172

原创 【堆漏洞-unlink】

当一个堆块(非fastbin)释放时,libc会先看其相邻的堆块是否空闲,空闲的话就将这个相邻堆块从bins中取出,并与当前释放堆块合并,而这个bins中取出堆块的过程就是unlink。

2023-04-06 19:58:03 571

原创 【堆漏洞-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 1312 1

原创 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 1374

原创 buuctf-逆向-reverse3

题目BUUCTF在线评测 reverse3思路Exeinfo PE查看程序为32位,无壳打开IDA ,找到有main_0函数,F5得C伪码,分析如何得到 right flag!查看Str2的内容为 e3nifIH9b_C@n@dH知道了Str2,也知道Dest经过变化的代码,我们可以写脚本得到原来变化前的Dest,但是变化前的Dest从v4来,得到v4的sub_4110BE有什么作用我们不清楚,就动态调试看看字符串查找到程序输入入口,F2下断点,运行输入.

2022-04-21 21:50:50 2968

原创 逆向学习1-[脱壳技术]/篇1

壳壳是包裹在程序外的一层代码,通常先于程序执行,达到防止源程序不被非法修改或反编译的目的壳的分类壳分为压缩壳和加密壳压缩壳压缩壳主要是帮助减少PE文件(Windows下的文件格式)大小,隐藏PE文件内部的代码和资源常见的压缩壳有:Upx、ASpack、PECompat加密壳加密壳应用有多种防止代码逆向分析的技术,用该壳的PE文件会比原文件大很多,有时恶意程序也用加密壳来降低杀毒软件的扫描常见的加密壳有:ASProtector、Armadillo、EXECryptor、T.

2022-04-21 20:40:00 2671

原创 Pwn中阶学习1-[栈溢出]/篇3

这种题型一般是在题目没有给出程序文件的时候,我们对程序一无所知,对程序是否栈溢出、栈溢出长度、gadget地址,源函数地址等只能进行爆破得到攻击条件: 程序存在栈溢出漏洞 服务器端的进程在崩溃后会重新启动,且启动进程地址与先前一样。目前 nginx, MySQL, Apache, OpenSSH 等服务器应用都是符合这种特性的。BROP绕过ASLR、NX、Canary保护步骤 爆破栈溢出长度 得到漏洞函数或main函数地址(stop gadget:使程序返回地

2022-04-14 15:33:33 1480

原创 Pwn基础学习1-[栈溢出]/篇2

继上一篇的内容题目3-ret2syscall定义控制程序执行系统调用原理不同于之前的 ret2text 和 ret2shellcode 题型,系统调用并不是执行程序中现有的代码或自己写进去的代码,其实就如其字面意思,系统调用就是我们让系统来调用一些函数,那么如何做到让系统来调用,需要满足以下几个条件:某函数的系统调用号【系统调用号表】—— 放在寄存器 eax 需传入某函数的参数 —— 放在寄存器 ebx、ecx、edx 一个指令 —— int 0x80int 0x80(软中断)

2022-03-29 22:49:48 2356

原创 Pwn基础学习1-[栈溢出]/篇1

是缓冲区溢出的一种,当缓冲区数据大于缓冲区大小时,缓冲区之外的有用数据就会被多出去的缓冲区数据覆盖改写,从而可能导致程序崩溃。

2022-03-14 18:02:06 7091

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除