自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2025 XYCTF Pwn-wp(含附件)

总体来说Pwn方向题目难度属于中等,属于那种一眼看不出要咋做,但多试试又能做出来的那种,比赛的时候甚至有几只队伍AK了Pwn方向。

2025-04-08 18:52:46 517 2

原创 CISCN && 长城杯 2025半决赛 Pwn-typo wp(含附件)

通过网盘分享的文件:2025CISCN半决赛pwn.rar链接: https://pan.baidu.com/s/1jplAyW7_0UnTWql9f6YJ7w 提取码: xidp。

2025-03-20 00:04:30 797

原创 买不起的大house之house of emma

这条链子由WJH’s Blog师傅首个发现,经典例题为2021湖湘杯的1解题劫持stderr(比如劫持使得其为一个已知的地址(比如) 注:使用查看在劫持的stderr中构造fake_IO,具体要求为为0xffffffffffffffff(也就是-1)以及_lock为一个不影响程序的流程的可写地址,一般选用堆地址(具体原因在最下面解释1然后在vtable处放上(注:这里为什么是+0x40看下面解释2)用于调用当然其他偏移也可以但是这里只介绍进入之后rdi会指向被劫持的stderr随后会进入此时rbx指向。

2025-03-08 00:34:58 601

原创 买不起的大house之house of kiwi

在glibc2.34中取消了等关键hook。这使得原本利用修改这些hook来达成控制程序流的方法不再适用。所以在进入glibc高版本后出现了很多利用IO流来控制程序流程的方法,就是其中之一能够达成任意已知地址写,来想办法控制中的__sync指针,修改__sync指针为one_gadget控制top_chunk的size位的大小并将prev_inuse置为0申请一个比我们修改后的top_chunk的size大的chunk块,就可以触发。

2025-03-05 15:34:24 589

原创 买不起的大house之house of apple3

roderick01师傅的apple链子中的第三种,和apple2相同可以直接获取shell,并且利用起来也很方便。roderick01师傅提出的方法不仅仅是上面一种,大致分为下面四种。

2025-03-03 19:45:51 591

原创 买不起的大house之house of apple2

roderick01师傅的apple链子中的第二种,和apple1不同,apple2可以直接获取shell,并且利用起来也很方便。roderick01师傅提出的方法不仅仅是上面一种,大致分为下面四种。

2025-03-02 14:07:00 683

原创 ARM架构基础知识

支持 低寄存器(r0-r7)或 高寄存器(r8-r12, lr, pc等),具体取决于指令集(ARM/Thumb)函数的 1 - 4 个参数分别由 R0 - R3 寄存器来保存,剩下的参数则是从右往左依次压入栈中。在aarch64架构下比arm架构新增了BLR指令,也是用于跳转的指令,下面是它对比BL指令。:寻址模式(如IA、IB、DA、DB)或堆栈模式(如FD、ED)(一对)的意思,也就是说,仅可以同时读/写两个寄存器。:可选后缀,表示更新基址寄存器(Rn)的值。从子程序返回(跳转至LR保存的地址)

2025-03-02 02:32:50 688

原创 买不起的大house之house of apple1

在高版本的glibc中逐渐移除了等一众hook全局变量,这意味着在CTF竞赛中利用“hook”来控制程序流成为了过去式。而想要在高版本利用成功,基本上就离不开对IO_FILE结构体的伪造与IO流的攻击下面介绍一种由roderick01师傅发现的链子称之为而一共有三条链子本文将介绍apple1stderr。

2025-03-01 01:09:38 824

原创 利用setcontext来进行ORW

setcontext是libc中的一个函数,而它的汇编代码中含有大量的mov <寄存器>这类汇编语句,如下图(注:setcontext以glibc2.29为分界线,2.29以下和2.29及以上有较大不同):上图是glibc2.27中的setcontext的汇编部分,可以看到其中有非常多的控制寄存器的mov指令,它们都利用rdi+<偏移值>来获取具体的数值,所以如果我们可以控制rdi寄存器随后将程序跳转到setcontext+53(也就是图中mov rsp,[rdi+0xa0h]的位置)

2025-02-28 00:33:23 813 2

原创 小Pwn手杂谈之如何搜索下载libc以及其对应的ld文件

本文的完成离不开tw11ty师傅推荐使用下面的网址网站页面如下:如何搜索:我们需要使用URL来直接进行版本的搜索https://launchpad.net/ubuntu/版本/amd64/libc6我们只需要修改上面的版本就可以替换对不同版本的libc进行查找下面是不同的版本名称也就是我们分别将版本pluckyoracularnoble等就可以查到对应的Ubuntu版本所使用的历史libc版本下面使用Ubuntu20版本来举例比如我们想要找一个glibc版本为2.31的glibc。

2025-01-13 23:09:14 515

原创 小Pwn手杂谈之不同输入函数之间的区别

本文涉及read函数fgets函数scanf函数以及gets函数获取字符串后内存的区别,以及在pwntools中使用sendline和send的区别。实验过程有些冗长,嫌麻烦的师傅可以直接查看下面的总结实验目标readfgetsscanf这种可以限定大小的输入,如果输入量小于/等于/大于它们的输入量分别会出现什么情况这种情况是否存在溢出gets输入是怎么处理\n符号的下面是我实验用的代码int init()return 0;init();// 初始化bss数组。

2024-11-19 00:20:50 881

原创 菜鸟笔记之pwn工具篇--Pwndbg基础使用

它是gdb的一个插件,增加了许多功能,来帮助pwn手可以快速寻找到所需要的信息,除了pwndbg之外还有pedagef等工具可以用来协助进行调试。

2024-10-03 12:09:31 2303 1

原创 菜鸟笔记之pwn工具篇--pwntools库的基本使用

这种类型用于将消息变成对应的进制流(因为原本程序里面的数据都是已经编译过的,所以打入的数据也需要是编译过的,所以需要使用p64()这类工具),这一点细节上的差距就可能导致我们的脚本无法打通,所以我们需要面对合适的函数使用合适的方法,后续我们将会继续讨论。,它可以将多个数据结构(如字符串、整数等)连接在一起,并将它们转换为二进制数据。在pwn(1.0.0)中曾经介绍过,我们启动靶机后会得到一个靶机地址,把靶机地址的前缀和端口分别输入在。的时候将泄露的进制流变成对应的原本的样子,方便来辨认查找glibc版本。

2024-10-03 12:04:43 2413 1

原创 菜鸟笔记之PWN入门(1.1.3)Linux基础操作和ELF文件保护

这里不讨论Linux的历史及其与Windows的比较。直接介绍一些简单基础的操作。首先我们需要安装一个Linux操作系统(首先推荐Ubuntu),我们需要安装一个VM虚拟机,然后在里面搭建一个Ubuntu的虚拟机可以直接百度搜索,这里推荐一个文章根据教程你可以成功安装Ubuntu虚拟机之后第一件事情不是配置PWN环境,而是更换源然后按照顺序安装PWN的大部分工具需要从github上下载,请确保你的网络能够顺利连接github,建议科学上网,否则下载成功与否只能看运气…

2024-09-17 22:36:06 1308

原创 菜鸟笔记之PWN入门(1.1.2)C程序调用过程与函数栈变化(32位 vs 64位)(Intel)

其实程序本身的流程并不困难,只是初学者对汇编语言的了解较少所以难以理解,如果对于文章内容难以理解,不妨寻找一些汇编语言的教程较为系统的了解汇编语言也许会有所帮助(制作图片用的是win11自带的画图工具,里面的字体大小不知道为什么调节不了,所以出现了字体很小的情况,・_・。PWN入门(1-1-1)-C函数调用过程原理及函数栈帧分析(Intel) (yuque.com)linux - C函数调用过程原理及函数栈帧分析 - 编程之道 - SegmentFault 思否。

2024-09-17 22:34:30 976

原创 菜鸟笔记之PWN入门(1.1.1)汇编语言基础与堆栈入门

先贴一张图用来理清楚堆和栈在程序中的位置在计算机程序运行时,系统会将可执行文件的text段(代码段)和data段(数据段)加载到内存中。在C语言等编程语言中,函数调用过程中需要传递参数并创建局部变量。如果这些数据都存储在data段或bss段中,会导致内存空间的浪费,并使得管理变得复杂。为了高效管理函数的参数和局部变量,并在函数调用结束后释放相关资源,我们使用了栈。栈是一种后进先出(LIFO)的数据结构,它能够在函数调用时创建栈帧来存储函数的局部变量、参数、返回地址等信息。

2024-09-17 22:33:07 1245 1

原创 菜鸟笔记之PWN入门(1.1.0)ELF 文件格式和程序段解析(简版)

段本身不会占用 ELF 文件的实际大小,它在 ELF 等可执行文件中只是一个符号用于占位。程序执行时,会根据这个符号在计算机中分配相应的内存大小。ELF 文件包含多个段,每个段承担不同的作用。ELF 文件中的段在程序执行前会被加载到内存中,然后在计算机内存中。都存在可执行文件当中,程序执行时,系统从可执行文件中加载至内存。在可执行文件中只是一个符号用于占位,由系统根据其符号进行初始化。的文件格式,类似于 Windows 下的。在上述例子中,已经被赋值好的数据。段中的数据也是固定大小的。段通常被称为数据区。

2024-09-17 22:32:02 395

原创 菜鸟笔记之PWN入门(1.0.0)前言

PWN是黑客术语中的俚语,是指攻破设备或者系统。它的发音类似于“砰”,当然也有师傅把它叫作“胖”。PWN 的目标是获取系统的控制权或执行未经授权的操作。

2024-09-17 22:31:12 993 1

空空如也

空空如也

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

TA关注的人

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