
Pwn
文章平均质量分 79
晓幂
这个作者很懒,什么都没留下…
展开
-
pwn学习笔记(12)--Chunk Extend and Overlapping
chunk extend 是堆漏洞的一种常见利用手法,通过 extend 可以实现 chunk overlapping(块重叠) 的效果。原创 2024-11-11 19:48:08 · 794 阅读 · 0 评论 -
pwn学习笔记(11)--off_by_one
多次输入几个a之后,发现了最后输出的时候输出了17个a,我的目的仅仅只是需要16个a,结果输出了17个a,像这种,在写入字符串的时候多写入了一个字节的情况,就是off by one。prev_sizeprev_sizeprev_sizeprev_size 最新版本代码中,已加入针对 2 中后一种方法的 check ,但是在 2.28 及之前版本并没有该 check。原创 2024-11-09 21:29:56 · 903 阅读 · 0 评论 -
Pwn学习笔记(10)--UAF
UAF就是Use-After-Free,即一个指向堆块的指针被释放后指针没有置零,形成了悬空指针,使得堆可以再次被使用。 估计第一个参数是一个函数指针,之后malloc第二个堆,地址赋给第二个参数,之后读取size大小的字符进入第二个堆块。 但之后没有对指针进行置零,存在UAF漏洞,因为show里存在idx参数,释放后如果申请大小差不多的堆块。 完蛋,没注意到tcache给我保存了这些内容,不过不清楚是否存在影响,继续调一调看看吧,之后重新申请个堆。原创 2024-11-05 11:50:54 · 448 阅读 · 0 评论 -
pwn学习笔记(9)-中级ROP--ret2csu
首先是64位文件的传参方式:前六个参数是从左到右放入寄存器:rdi、rsi、rdx、rcx、r8、r9,之后的通过栈传参。 比如:传参函数大于7个:h->(%esp)g->(%esp)call H 之后反汇编一下main函数和H函数的代码 很明显的就是前六个参数是寄存器传参,剩下两个就是栈传参。原创 2024-08-09 02:54:28 · 482 阅读 · 0 评论 -
pwn学习笔记(8)--初识Pwn沙箱
沙箱机制,英文sandbox,是计算机领域的虚拟技术,常见于安全方向。一般说来,我们会将不受信任的软件放在沙箱中运行,一旦该软件有恶意行为,则禁止该程序的进一步运行,不会对真实系统造成任何危害。 安全计算模式seccomp(Secure Computing Mode)在Linux2.6.10之后引入到kernel的特性,可用其实现一个沙箱环境。使用seccomp模式可以定义系统调用白名单和黑名单。seccomp机制用于限制应用程序可以使用的系统调用,增加系统的安全性。 在ctf中主要通过两种方原创 2024-08-06 04:05:55 · 1379 阅读 · 0 评论 -
Pwn刷题记录(不停更新)
发现了个事儿,for循环会执行两次,所以这里采用第一次不溢出,通过格式化字符串漏洞对Canary的值进行泄露,之后就可以在合适的地方填入canary的值来绕过canary保护了。 之后就是具体进行溢出了,计算溢出的长度也比较简单,这里直接上答案吧,116字节,不过,第100到104为canary的值。 根据这俩进行计算,可得到偏移,结果是0x7c/4=31。 除了NX之外,似乎就只有 Canary了。 因此,思路就很明确了。原创 2024-06-23 18:50:21 · 454 阅读 · 0 评论 -
pwn学习笔记(0)-事后补充
首先是在最开始的时候装环境此次碰壁,搞得没心思写这篇博客,其次,又因为虚拟机本身的问题,导致我对虚拟机有很强的不满,所以我最开始没有写这篇博客,但是,转念一想,为什么我必须得执着于 虚拟机呢?不是同样都是Linux吗,为啥我不直接采用 WSL 来部署 Pwn 环境呢?所以,这里我选择了重装了下 Pwn 环境,不过,因为我装好很大一部分之后才想起来记录博客,所以我只会把前面的内容简单记录一下,不进行二次实操了。 WSL的安装我就不详细进行说明了,这个挺无脑的。原创 2024-06-23 17:33:19 · 566 阅读 · 0 评论 -
pwn学习笔记(1)前置基础
以下来自于百度百科:”Pwn”是一个黑客语法的俚语词,是指攻破设备或者系统发音类似“砰”,对黑客而言,这就是成功实施黑客攻击的声音——砰的一声,被“黑”的电脑或手机就被你操纵了。原创 2024-02-04 15:48:49 · 671 阅读 · 0 评论 -
pwn学习笔记(2)ret_2_text_or_shellcode
ax寄存器:通用寄存器,可用于存放多种数据 bp寄存器:存放的是栈帧的栈底地址 sp寄存器:存放的是栈顶的地址 栈帧是存储函数的一些信息的地方,栈帧存储有函数的局部变量,传递给子函数的实际参数,父函数的地址以及上一个栈帧栈底的地址,大致情况如下: 在函数调用的过程中,首先会讲bp寄存器的值进行压栈,以方便在恢复的时候恢复栈底寄存器的值,再之后,会按顺序将局部变量压栈,最后是子函数的实际参数,会按照先入栈的后出栈,从最后一个实际参数先入栈再到第一个实际参数,比如函数a(int a ,原创 2024-02-04 23:58:21 · 1790 阅读 · 0 评论 -
pwn旅行之[WUSTCTF 2020]getshell2(一些小知识)
Linux下查找文件(find、grep命令)_linux查找文件-优快云博客find 路径 -name "文件名"之后就是根据题目猜测flag文件的名字,最后通过上一条语句进行查找,当然,如果猜不到,那么还是只有挨个找了。原创 2024-02-07 03:42:45 · 673 阅读 · 0 评论 -
pwn学习笔记(3)ret2syscall
ROP(Return Oriented Programming)返回导向编程,主要思想是通过在程序中已有的小片段(gadgets)来改变某些寄存器或者变量的值,从而控制程序的执行流程。原创 2024-02-13 23:46:46 · 986 阅读 · 0 评论 -
pwn学习笔记(4)ret2libc
静态链接是由链接器在链接时将库的内容加入到可执行程序中的做法。链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序。这里的库指的是静态链接库,Windows下以.lib为后缀,Linux下以.a为后缀。 也就是说将静态链接库中的所有的函数都写入这个ELF文件中,所以会造成该二进制文件极为庞大,因此也会存在很多的可供利用来ret2syscall的gadgets。但是,使用静态链接生成的可执行文件体积较大,包含相同的公共代码,造成浪费。原创 2024-02-19 13:47:43 · 1518 阅读 · 0 评论 -
pwn旅行之[NISACTF 2022]ezpie
PIE全称是position-independent executable,中文解释为地址无关可执行文件,该技术是一个针对代码段(.text)、数据段(.data)、未初始化全局变量段(.bss)等固定地址的一个防护技术,如果程序开启了PIE保护的话,在每次加载程序时都变换加载地址,从而不能通过ROPgadget等一些工具来帮助解题。 简单地说就是地址随机化。原创 2024-02-25 20:31:30 · 691 阅读 · 0 评论 -
pwn学习笔记(5)--格式化字符串漏洞(未完全完成)
格式化字符串函数可以接收可变数量的参数,并将第一个参数作为格式化字符串,根据其来解析之后的参数格式化字符串函数格式化字符串[后续参数]原创 2024-03-05 22:18:37 · 1546 阅读 · 0 评论 -
pwn学习笔记(6)--堆基础概述
chunk 被释放时,glibc 会将它们重新组织起来,构成不同的 bin 链表,当用户再次申请时,就从中寻找合适的 chunk 返回用户。不同大小区间 chunk 被划分到不同的 bin 中,再加上一种特殊的 bin,一共有四种:Fast bin 、Samll bin 、 Large bin 、和 Unsorted bin。这些bin记录在 malloc_state 结构中。fastbinsY :这是一个 bin 数组,里面有 NFASTBINS 个 fast bin。原创 2024-03-23 15:51:05 · 1052 阅读 · 0 评论 -
pwn学习笔记(7)--堆相关源码
对于用户来说,只需要确保malloc()函数返回的内存不会发生溢出,并且在不用的时候使用free() 函数将其释放,以后也不再做任何操作即可。而对于glibc来说’它要在用户第一次调用malloc()函数之前对堆进行初始化;在用户频繁申请和释放时维护堆的结构’保证时间和空间上的效率;同时还要检测过程中可能产生的错误,并及时终止程序。 首先,先稍微说下几个相关的宏定义。原创 2024-04-04 21:28:30 · 928 阅读 · 0 评论