自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《操作系统真象还原》 第十一章 用户进程

Linux用户进程是运行在CPU用户态(Ring 3)的程序执行实例,每个进程拥有彼此隔离的独立虚拟地址空间,无法直接访问内核或硬件资源;当需要执行特权操作(如读写文件、申请内存)时,必须通过系统调用陷入内核,由内核代表其完成工作。内核通过进程控制块(task_struct)管理进程的状态、资源、调度等信息,并在多个进程之间通过软件上下文切换实现并发执行,从而在保证安全性与稳定性的前提下,为用户提供多任务处理能力

2026-05-06 21:25:24 427

原创 《操作系统真象还原》 第十章 输入输出系统

输入输出(I/O)系统是计算机系统中负责与外部设备(如键盘、鼠标、显示器、磁盘、网卡等)进行数据交换的子系统

2026-04-01 17:32:22 401

原创 《操作系统真象还原》 第九章 线程

线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位

2026-03-27 22:42:07 459

原创 《操作系统真象还原》第八章 内存管理系统

Makefile 是一种用于自动化构建项目的脚本文件,通常与 make 工具配合使用。它通过定义一系列规则(rules)来指定如何编译和链接程序,以及哪些文件需要重新生成。Makefile 能够根据文件的修改时间自动判断哪些部分需要重新编译,从而节省时间。

2026-03-21 21:18:02 392

原创 《操作系统真象还原》 第七章 中断

是一种让CPU暂停当前任务,转而去处理紧急事件的机制。处理完成后,CPU再回到原先被中断的地方继续执行。

2026-03-02 16:37:43 639

原创 《操作系统真象还原》 第六章 完善内核

在进程中都会有自己的栈,有些参数会保存在栈中,例如我们在调用函数时会将参数压入栈中,被调用函数在栈中获取参数然后执行,那么参数存放在栈中了,需要有来负责回收这部分空间的,由谁来回收就得看是哪种调用约定c语言使用的是cdecl调用,此处我们只了解cdecl即可。

2026-02-24 16:29:52 609

原创 《操作系统真象还原》 第五章 保护模式进阶,向内核迈进

在这章我们会学习虚拟内存,分页机制等一系列内容,但是首先,我们需要让操作系统获取内存容量。

2026-02-06 21:43:00 670

原创 《操作系统真象还原》 第四章 保护模式入门

实模式和保护模式是x86架构CPU的两种核心工作模式,二者的设计目标、内存管理方式、特权机制差异极大,是操作系统底层开发的核心基础。在这章我们需要从实模式进入到保护模式。

2026-02-03 16:08:08 694

原创 《操作系统真象还原》第三章 完善MBR

上一章是通过调用bios中断来打印的字符串,这次我们尝试不用bios中断来打印字符串,因为后面我们要进入保护模式,保护模式中我们不能使用bios中断从起始地址0xB8000-0xBFFFF,这片32KB大小的内存区域是用于文本显示,我们往0xB8000处输出的宇符直接会落到显存中一个字节有16位,低8位是存放的ASCII码,高8位中的低4位是字符颜色,高4位是背景颜色,配色如下图。

2026-02-01 21:41:56 668

原创 《操作系统真象还原》 第二章 编写MBR主引导记录

0xFFFF0处存放着一条跳转指令,用于跳转到BIOS程序,BIOS程序会对0盘0道1扇区的最后两个字节进行校验查看是否存放的是MBR主引导记录,如果是0x55,0xaa,就会将改扇区的512字节加载到内存0x7C00处。8086CPU的寄存器是16位的(最多只能存储0x0000~0xFFFF的数值),但它的地址线是20位的(20位地址线,能访问的物理内存范围是0x00000~0xFFFFF,共1MB,这也是实模式的最大内存寻址能力。(CL,CH) = 窗口左上角的(X,Y)位置,此处为(0,0)

2026-01-31 21:37:01 619

原创 《操作系统真象还原》 第一章 部署工作环境

要在解压出来的文件夹执行下列指令,标蓝的地方为路径,要修改为自己存放的地方,我自己创建了一个bochs文件夹存放,与解压包那个不是同一个。然后在你创建的文件夹里面使用指令创建bochsrc.disk的文件。在这个文件里面输入下列内容,图中标红的要改为你自己创建的那个文件夹。执行完后进入你指定的路径,出现这两个文件夹就是安装成功了。保存后执行下列指令开始创建磁盘,跟着下列指令走。然后使用下列指令来写入我们创建的虚拟磁盘里面。使用下列指令来启动(在你创建的那个文件夹)进入解压后出现的文件夹里面。

2026-01-31 16:45:14 535

原创 buuctf[ciscn_2019_en_2]

使用checksec查看,发现只开启了栈不可执行查看主函数发现前两个里面是空的,只有输入1后进入的函数才有内容,于是我们跟进我们发现如果x<我们输入的字符串的长度的话就会对我们的输入进行修改从而无法溢出后无法跳转到我们想要的函数地址于是我们使用\0来截断我们只需要0x50+8个字节就可以溢出使用ROPgadget来查找编写脚本运行即可获得flag。

2025-12-25 10:39:49 173

原创 buuctf[not_the_same_3dsctf_2016]

使用checksec查看,只开启了栈不可执行的保护使用ida打开并查找到main函数。

2025-12-25 10:23:48 442

原创 ciscn_2019_n_5

使用checksec查看发现没有开启保护于是我们可以用很多种方法来解题由于没有后门函数,于是我们可以使用syscall或者ret2libc来解题。

2025-12-24 16:02:17 237

原创 [OGeek2019]babyrop

使用checksec查看使用ida打开并查看伪代码sub_80486BB函数只是进行了一些初始化查看下一个sub_804871F函数v5会存放buf缓冲区中实际的字符数末尾添加\0下面几行我们可以发现当buf中的字符与s中的不相等时会退出,我们可以使用\0来绕过使得函数返回buf[7],并存放在主函数中的v2中,当作sub_80487D0的传参。

2025-12-24 15:32:42 274

原创 BUUCTF[[NewStarCTF 2023 公开赛道]ret2libc]

使用checksec查看由于这道题没有后门函数,并且只开启了栈不可执行保护,于是我们使用ret2libc需要执行两次函数流程,第一次泄露libc地址,第二次通过泄露的地址来执行system函数payload1:先通过栈溢出覆盖返回地址,然后使用pop rdi;ret来将puts 的 GOT 表地址传入 rdi 寄存器然后调用 puts 函数,打印puts_got中存储的 puts 真实地址puts 执行完后跳回 main 函数,重新触发输入提示(方便发送第二个 Payload)然后。

2025-12-13 11:09:00 739

原创 BUUCTF[get_started_3dsctf_2016]

使用checksec查看使用ida打开,发现存在gets函数溢出只需要56个字节搜索发现有个get_flag函数,满足条件会执行打开flag.txt的指令该函数地址为0x080489A0我们可以溢出后 覆盖返回到get_flag函数,并且传入符合判断的值a1的值814536271就是0x308CD64F由于该题目没开启标准输入输出,于是我们得让函数正常退出来得到回显exit函数地址0x0804E6A0。

2025-12-13 10:02:08 303

原创 BUUCTF[jarvisoj_level2_x64]

使用checksec查看使用ida(pro)打开根进vulnerable_function函数依旧是栈溢出这道题我们无法使用上一题的32位来直接使用plt表来跳转到system,所以我们使用ROPgadget使用指令 ROPgadget --binary 文件名 来获取信息这里可以查看到pop rdi;ret的地址在64位中前几个参数我们是使用寄存器来存储的,后续的存放下栈中与32位直接存放在栈中不同,在此处我们需要向rdi寄存器中存入我们的后门函数地址我们通过pop rdi;

2025-12-12 16:25:03 261

原创 BUUCTF[jarvisoj_level2]

发现存在read函数,并且buf缓冲区可以被溢出,由于保护只开启了栈不可执行,因此我们查找一下后门函数。使用ida打开文件,发现主函数没有什么特别的,直接跟进vulnerable_function函数。system执行完后需要有个返回地址,于是我们随便给个合法地址,在之后写入bin_sh的地址。来让其执行system("/bin/sh")使用checksec打开文件查看保护。通过plt表来跳转到system函数。

2025-12-12 16:11:09 244

原创 BUUCTF[jarvisoj_level0]

checksec使用ida打开,主函数没有什么东西,于是跳转另一个函数发现有read函数并且没有开启栈溢出保护,因此这道题就是简单的一道栈溢出此处可写入0x200个字节,但是buf缓冲区只能存储0x80个字节,足够溢出了查找发现存在后面函数编写脚本溢出覆盖返回地址即可。

2025-12-06 11:07:45 177

原创 BUUCTF[[第五空间2019 决赛]PWN5]

checksec发现开启了栈溢出和栈不可执行的保护用ida打开观察函数我们可以发现存在格式化字符串漏洞:我们可以实现读取和写入的操作我们可以通过构造包含(打印栈内存),(打印字符串地址内容)等格式符的输入,读取观察函数发现我们需要输入与dword_804C044中相同的字符串才可以获取权限但是此处的dword_804C044是随机的,我们无法获取,于是通过格式化字符串来写入到dword_804C044来让其为我们已知的内容来获取权限。

2025-12-06 11:07:22 464

原创 BUUCTF[pwn1_sctf_2016]

checksec后发现存在栈不可执行的保护,为32位文件主函数没有什么,直接进入vuln函数,发现有几个关键点查看栈帧结构,发现需要0x3c+0x4个字节才可以溢出fgets(s,32,edata) 读取最多32字节到s中(包括\0)此处32字节无法溢出并且覆盖到返回地址结合汇编及函数名称来看是替换字符的调试时输入I,发现I被替换为you此处可以发现会将我们被替换后的字符串存入s缓冲区中查找到打开flag文件的函数。

2025-12-05 10:57:01 300

原创 BUUCTF[rip]

使用checksec查看文件,发现没有开防护,是64位文件使用ida(pro)打开文件发现有gets函数但是该函数,加上此处未开启栈溢出保护,所以可以进行查看主函数的栈帧布局可以发现只需要0xf+0x8个字节就可以溢出并覆盖返回地址继续查找发现存在后门函数,于是我们可以直接溢出后返回后门函数地址来获取权限最后查找flag即可。

2025-12-05 09:56:41 509

原创 XSS([第二章 web进阶]XSS闯关)

根据提示得知执行alert函数即可。

2025-07-24 19:46:10 847

原创 RCE(命令注入-ctfhub综合过滤练习)

测试中发现空格 | || &&;都进行了过滤,后续测试中发现空格可以使用换行符%0a来代替。后续查找时发现cat,flag被过滤,但是单引号'未被过滤,于是使用'c'at来代替cat,flag同理。查找flag_is_here文件夹中的flag文件,打开源码即可发现flag。通过ls查看发现当前存在名叫flag_is_here的文件夹。查找发现flag文件,使用cat打开。这里使用tab键%09来进行替代。

2025-07-22 19:38:12 676

原创 命令执行漏洞([GXYCTF2019]Ping Ping Ping)

ls查看文件网站的应用程序有些需要调用执行系统命令,当用户能控制这些函数中的参数时,用户就可以将恶意命令拼接到正常命令中ls查看文件输入ls指令发现存在两个文件。

2025-07-21 19:23:38 545

原创 文件包含漏洞之SESSION文件与php伪协议

SESSION文件通常存储在服务器固定目录中且文件名通常包含Session ID,SESSION文件的内容由序列化的键值对组成,攻击者可通过操纵提交给应用程序的数据。php的session文件的保存路径可以在phpinfo的看到。在此处,session会自动保存在session库中于是我们编写php代码phpsessid在发送的请求的cookie字段中可以看到。我们通过第一关来访问session文件即可发现成功。

2025-07-18 20:01:14 754

原创 文件包含漏洞

很多 Web 应用(尤其是使用 PHP 等脚本语言的)会根据用户输入或参数来决定加载哪个文件来显示内容下面这段代码便存在文件包含漏洞include会将指定文件的内容包含并执行到当前 PHP 脚本中于是我们使用phpstudy创建一个网站来演示将该代码放在服务端中我们来访问一下服务端中的这个文件phpinfo.txt中的代码如下当我们给file传入另一个文件时,发现txt被当作php文件执行并且当我们访问网站时,会留下访问记录于是我们访问使用bp抓包。

2025-07-17 19:32:35 773

原创 文件上传漏洞-MIME绕过+.htaccess+00截断

MIME类型用于标识文件的性质和格式,但是浏览器自动添加的字段可被修改来进行绕过因此编写一句话木马GIF98a<??上传php木马文件并使用bp抓包将字段改为image/jpeg即可发现上传成功打开上传文件的路径输入cmd=phpinfo();发现成功执行,于是连接到蚁剑来获取flag。

2025-07-16 19:56:13 722

原创 文件上传漏洞-无验证(ctfhub)+js前端验证([ACTF2020 新生赛]Upload)

编写一句话木马并且上传上传成功后找到文件路径链接到蚁剑找到flag。

2025-07-15 20:03:36 376

原创 含有简单过滤的布尔盲注([NewStarCTF 2023 公开赛道]medium_sql)+简单运用sqlmap

先测试是否是字符型进一步测试发现进行了过滤改为大写后发现只对关键词进行了小写的过滤测试是否可以进行布尔盲注发现回显有变更,说明可以使用布尔盲注。

2025-07-14 19:57:07 922

原创 布尔盲注(CTFHub)+时间盲注([NewStarCTF 2023 公开赛道]midsql)

输入id=1时显示正确输入'时显示报错,但于是使用来判断数据库中的字符编写python脚本name = ''low = 32high = 128#采用网页返回信息来判断是否正确else:high = midbreak运行得到结果继续编写脚本进一步获取信息,后续更改payload即可重复运行脚本即可得到flag。

2025-07-11 17:42:58 1338

原创 sql报错注入 (sqli labs less5 + CTFHub + buuctf极客大挑战2019HardSQL)

输入发现产生语法错误通过故意构造触发数据库错误,来获取敏感信息获取数据库信息下一步获取时发现有字符长度限制,使用substr来获取信息得到information_schema,challenges,mysql,performance_schema,security,study,sys继续获取security下的信息0x7e是~,用于作为分隔符发现敏感信息进一步即可获取信息,同样使用substr即可原理与上相同?同样存在字符限制。

2025-07-10 19:48:21 1086

原创 sqli labs less1-4 联合查询

使用http://127.0.0.1/sqli-labs/Less-3/?id=-1') union select 1,2,3 --+配对括号即可。筛选发现存在username与passwrod敏感信息。使用hackbar输入?id=1'发现出现语法错误。将id改为-1,然后发现可以使用联合查询。查看错误信息得知直接使用查询即可。使用order by 查询字段。查询发现security。查询发现存在users。使用 " 发现语法错误。发现最多只有3个字段。

2025-07-09 19:40:22 469

原创 摸鱼大闯关1-20

得到为 ,即为空格,空格的单词为space,输入space即可进入下一关。搜索39°54'32.3"N 116°23'51.1"E可发现图中是天安门。查看网页源码可发现提示,输入即可到下一关。mac与windows是三大操作系统之一。图中人物为凯撒,对字符串进行凯撒枚举。网址为EFFACED.html。分析后答案为110037296。网址为linux.html。输入网址stage2即可。发现图片宽度,修改后可得。base64解密可得密码。密码为tiananmen。网址为ruby.php。

2025-07-08 19:52:03 255

空空如也

空空如也

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

TA关注的人

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