自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 buuctf:linkctf_2018.7_babypie、babyheap_0ctf_2017

文章连接:欢迎访问~

2025-11-05 00:15:18 112

原创 buuctf:qctf2018_stack2、[BSidesCF 2019]Runit 1

文章链接:欢迎访问~

2025-09-23 20:01:20 106

原创 buuctf:suctf_2018_stack、ctfshow 堆前置 pwn143

文章链接:欢迎访问~

2025-09-04 15:05:18 142

原创 buuctf:rootersctf_2019_srop、picoctf_2018_buffer overflow 0

文章链接:欢迎访问~

2025-08-30 15:12:50 126

原创 buuctf:wdb_2018_3rd_soEasy、judgement_mna_2016分析、ciscn_2019_sw_1(fini_array 段改mian程序再运行)

文章链接:欢迎访问~

2025-08-28 17:10:05 129

原创 buuctf:starctf_2019_babyshell、wustctf2020_number_game

文章链接:欢迎访问~

2025-08-23 11:22:40 237

原创 buuctf:护网杯_2018_gettingstart、oneshot_tjctf_2016

文章链接:欢迎访问~

2025-08-18 13:34:38 287

原创 buuctf:wustctf2020_name_your_cat(数组越界)、axb_2019_brop64

文章链接:欢迎访问~

2025-08-13 13:23:56 123

原创 buuctf:axb_2019_fmt64

写得不好,纯属记录......

2025-08-10 13:49:23 207

原创 buuctf:inndy_echo、actf_2019_babystack

欢迎访问......

2025-08-09 15:15:17 189

原创 ctfshow:pwn142(off by one)、buuctf:suctf_2018_basic pwn、picoctf_2018_leak_me

文章链接:欢迎访问。

2025-08-08 11:45:03 234

原创 buuctf:picoctf_2018_can_you_gets_me、x_ctf_b0verfl0w

buuctf:picoctf_2018_can_you_gets_me、x_ctf_b0verfl0w – lycorecoの小破站欢迎访问......

2025-08-06 11:51:26 197

原创 ctfshow:pwn85(高级ROP 64 位 Partial-RELRO)、pwn141

wctfshow:pwn85(高级ROP 64 位 Partial-RELRO)、pwn141 – lycorecoの小破站1、pwn85分析 来ctfshow学点新东西 64位partial relro开了NX,运行有一个输入 但是…http://lycoreco.cn/index.php/2025/08/04/ctfshowpwn85%e9%ab%98%e7%ba%a7rop-64-%e4%bd%8d-partial-relro%e3%80%81pwn141/

2025-08-04 16:07:13 441

原创 Yilanchia的博客迁移啦

csdn让我养成了记笔记的习惯,也颇有用处,虽然现在学识甚浅,需要慢慢积累。假期自己搞了一个小破站,以后继续学习的同时会在小破站记录,因为喜欢看板娘所以已经跟着B站大佬建好了小破站,欢迎大家访问。

2025-07-19 16:46:33 94

原创 ctfshow做题笔记—栈溢出—pwn75~pwn79

其核心思想是利用程序中某些寄存器指向的地址(如栈上的缓冲区地址),并通过查找 jmp reg 或 call reg 指令,将程序的控制流转移到该寄存器指向的地址,从而执行注入的 shellcode。当然需要用到rdi,ret。主要原因就是栈溢出之后,比如这道题剩下的栈空间已经不足以装下整个payload,利用栈迁移就可以将esp这个栈指针指向新的栈空间,这样就可以继续写入我们的payload了。每次迁移时,都需要提前计算并布置好新的栈空间的地址信息,以便在执行leave指令时能够正确地迁移到新的栈空间。

2025-04-14 23:46:10 1034

原创 ctfshow做题笔记—栈溢出—pwn73、pwn74

one_gadget 是一个用于查找 libc 中可以直接执行 execve("/bin/sh", NULL, NULL) 的代码片段(即 “one-gadget”)的工具。这些代码片段在满足特定条件后可以直接用于获取 shell,而无需额外构造复杂的 ROP(Return-Oriented Programming,返回导向编程)链。这些片段通常位于 libc 的某些特定函数中,例如 system 函数的实现代码。使用时,需要知道目标程序所使用的 libc 版本,并且能够泄露 libc 的基址。

2025-03-26 21:23:16 624 6

原创 ctfshow做题笔记—栈溢出—pwn69~pwn72

例如,在Linux系统中,execve系统调用可以用来启动一个新的程序(如/bin/sh),从而获取shell。Seccomp(Secure Computing Mode)是 Linux 内核中的一种安全机制,用于限制进程可以调用的系统调用(Syscalls),从而减少潜在的攻击面。最后,攻击者将返回地址覆盖为int 0x80(32位)或syscall(64位)的地址,从而触发系统调用。想了一个简单的思路:利用栈溢出漏洞,通过覆盖返回地址,使程序执行系统调用(syscall)。使用了gets可能会栈溢出。

2025-03-12 21:54:30 1378

原创 ctfshow做题笔记—栈溢出—pwn65~pwn68

首先这道题并没有开启NX,我们任然可以注入shellcode,但是我们拟在 var_1010 中写入shellcode的地址并执行,因为程序最后读取了一个地址然后执行,这里可以执行shellcode,但是shellcode的参数写在哪里呢,似乎seed是个不错的选则,但是seed的准确地址我们无从得知,所以这个滑坡可以起到很大的作用,特别注意下面的类似的代码,cdqe 是一条指令,它的作用是将 32 位寄存器 EAX 的值扩展到 64 位寄存器 RAX 中。3是一个定值,就是v2的地址到seed的距离。

2025-03-09 22:49:00 919

原创 ctfshow刷题笔记—栈溢出—pwn61~pwn64

此外,leave ret 之后,程序可能会跳转到一个无效地址,导致崩溃。这几道都是与shellcode有关的题,实在是不会写,还是试了试,记录一下,收集了一些shellcode。根据之前学的知识,7(port参数)是可读可写的意思,所以,我们任然可以注入shellcode。关于shellcode我也不会写,所以去搜了一些shellcode,一般情况下还是能用的。遇到的一个问题是shellcode太长,超出了v4,v5的范围,这是为什么呢?也是地址随机化,提前运行的界面和上一道题差不多,会给一个地址。

2025-03-02 23:21:00 1275

原创 Deepseek本地部署小实践(c盘)

目录前言一、安装ollama二、打开终端执行run三、可视化小鲸鱼出来以后看到很多大佬本地部署AI,自己也想试一试,第一次部署AI,选了一个简单的办法,实践一下,写得比较粗糙。先简单的介绍一下ollama:Ollama 是一个开源的本地大语言模型运行框架,旨在简化大型语言模型(LLM)的本地部署和使用我们可以用它来运行我们想要的大模型,关键是它开源,就用它吧。ollama的下载可能会有点慢,我硬生生等了半天,但是安装会很快,因为c盘空间很充裕我就直接安装在c盘了。打开官网,安装想要的版本:直接downloa

2025-02-24 22:32:28 494

原创 ctfshow做题笔记—栈溢出—pwn57~pwn60

往前写了几道题,与shellcode有关,关于shellcode还不是太懂。logo明显提示用shellcode,所以我们需要发送sellcode。我们需要利用buf2,在其后面接shellcode。先了解一下简单的64位shellcode吧。也是写入shellcode。入门难度shellcode。继续学习中......一开始我是这样写的;

2025-02-24 21:52:04 558

原创 ctfshow刷题笔记—栈溢出—pwn53~pwn56

它先循环读取,每次一个字节,直到读取到换行符(ascll:10 0xa),循环读取才会结束,__isoc99_sscanf(v2,”%d”,&nbytes)这个函数从v2中读取一个整数,存放到nbytes变量中,这个变量决定了我们能够向buf写入的数据大小,我们想要造成溢出,这个数据就需要大一点,接下来,就去比较s1与global_canary是否相同,相同这个函数才能正常返回,造成溢出。,应该需要找到flag之间的关系。主要是提示用户输入数据,输出欢迎信息并让用户输入密码,进行比较,以便执行flag。

2025-02-19 23:05:53 900

原创 ctfshow做题笔记—栈溢出—pwn49~pwn52

(上一秒还在想ret2libc呢,真傻,程序是静态链接,还没有system函数,还是用mprotect)选择一段内存空间使它可读可写可执行,写入shellcode,将控制流跳到此处执行shellcode。第一个参数是需要修改空间的起始地址:可以改为got表的起始地址,或者——bass段的起始地址,这里选用got起始地址用readelf +s查看。还好没什么奇怪的东西,拖进ida看看,好吧,搜了一下,是c++代码,看不懂呀,我连c语言代码看起来都吃力。确实是开始难起来了,慢慢学吧,明天就要回学校了(悲)。

2025-02-13 18:10:39 876 1

原创 ctfshow做题笔记—栈溢出—pwn45~pwn48

但是怎么都timeout,偏移量是重新用pwndbg调试出来的,看来确实有点小错误。于是去学习了一些其他大佬的写法,也学到了一些应对办法。两天没更了,因为打了VNCFTF,还是太弱了,只能做一道异形文字的misc就结束了,pwn一直打不通(先打开ida瞅瞅,其实题目也说了无system无/bin/sh。没有write了,试试用puts吧,更简单了呢。被上一道题硬控半天,这道题不会也要被硬控吧。哎呦,确实可以,也算是对模板越来越熟悉了。由于lib库已经装在本地,省大事了。),于是沉默一天,还是继续学习吧。

2025-02-10 12:31:48 994 1

原创 ctfshow做题笔记—栈溢出—pwn41~pwn44(创作纪念日更新)

在利用buf2的地方根本上就是利用0x804b000 - 0x804c000这个数据段,所以可以使用0x804c000-16作为bin_addr把payload中的buf2_addr换为bin_addr。/bin/sh:是系统中默认 Shell 解释器的绝对路径,通常是一个指向具体 Shell 的符号链接(如 dash、bash 等)。若 PATH 包含 /bin,则 sh 实际会调用 /bin/sh。打开ida查看的确没有/bin/sh,但是一想,可不可以写入一个/bin/sh呢。

2025-02-07 20:35:01 1079

原创 ctfshow做题笔记—栈溢出—pwn37~pwn40

32位的x86使用栈来传递参数,而64位的则大多使用寄存器传参,比如前六个整数或指针参数放在rdi、rsi、rdx、rcx、r8、r9,浮点数用xmm0到xmm7。我们ctrl+F12找/bin/sh的地址:.rodata:0000000000400808 00000008 C /bin/sh。所以这道题的思路就是利用buf制造栈溢出覆盖到函数返回地址,替换为system函数地址,再将/bin/sh的地址传入rdi。二、pwn38(64位的 system(“/bin/sh”) 后门函数给你)

2025-02-06 13:19:03 844

原创 ctfshow做题笔记—前置基础—pwn32~pwn36

首先是logo()打印的是ctfshow的一些信息,然后将v4[10]数组赋给buf1[10]数组,将CTFshowPWN赋给buf2,然后打印buf1和buf2,之后strto将argv[3]转化为10进制数并赋给v5,memcpy(buf1, argv[2], v5);_FORTIFY_SOURCE=2:除了基本检查外,还会在运行时进行更严格的检查,例如更精确的缓冲区边界检查。_FORTIFY_SOURCE=3:这是较新的级别,提供了更高级的检查,例如动态对象大小检查。所以输入参数使argc>5即可。

2025-02-03 18:21:12 773

原创 ctfshow做题笔记—前置基础—pwn26~pwn31

由于这道题采取了PIE保护,所以ida中看到的地址实际上是执行过程中实际地址与函数got表地址的偏移量,所以我们利用执行程序会给出main函数实际地址再减去偏移量就得到了基地址,后续就可以计算puts_plt和puts_got了。flag很好拿,ida直接查看,或者运行一下。

2025-02-01 11:44:43 718

原创 ctfshow做题笔记—前置基础—pwn20~pwn25

在这里遇到很多的问题,编写脚本其实不太难,主要是查询lib的方式,开始使用Libcsearcher,似乎环境有问题,加上这个工具逐渐不太靠谱,又使用LibcSearcherX可以查询到lib的版本,挺不错,但是由于环境问题后续查找地址无法进行,就直接去下载了libc-2.27.so文件,和pwn27是一样的直接利用本地文件查找。它提供了丰富的模板和接口,能够根据目标系统架构(如 32 位或 64 位)和需求生成对应的机器码,从而方便安全研究人员在漏洞利用过程中快速生成 Shellcode。

2025-01-31 12:01:43 870

原创 第一届启航杯pwn—easy_pwn

(这里遇到一点小问题,之前用的是0x4011C6,但是会让输出流提前关闭,所以看了大佬们的解决办法,用了push后的地址,其实并不影响,可以继续执行调用)填充数据覆盖到返回地址,用secret的地址覆盖返回地址,利用缓冲区溢出漏洞,劫持程序的控制流并执行。查看vulnerable中有明显的缓冲区溢出漏洞(很高兴,之前学到的东西能得到实操)年前打了第一届启航杯,也算是用上了之前学到的知识,记录一下。打开ida查看到secret中有。新的一年继续学习中......//secret 函数的地址。

2025-01-29 16:16:06 418

原创 ctfshow做题笔记—前置基础—pwn13~pwn19

前言记录一下pwn13~pwn19,巩固一下学到的知识。一、pwn13·gcc 是调用 GCC 编译器的命令。·-o program 指定输出的可执行文件名为 program。·main.c 是你的源代码文件。有一个文件存在检验1.手动新建一个key文件再写入CTFsho2.编译运行即可三、pwn15(编译汇编代码到可执行文件,即可拿到flag)

2025-01-23 20:24:00 1065

原创 ctfshow做题笔记-前置基础-pwn5~pwn12

前言前言堆了很一段时间没有写笔记,巩固一下学到的知识。一、pwn5只需要运行就OK二、pwn6(立即寻址)学到一个小操作:在ida中打开二进制文件后,遇到13进制数点击16进制数按快捷键H换为10进制数(回到16进制按Q,2进制按B)三、pwn7(寄存器寻址)四、pwn8(直接寻址)知识点:直接寻址是指通过一个具体的内存地址直接访问内存中的数据。在这种寻址模式下,地址直接指定目标数据的位置,无需额外的计算或间接引用。得到值为636C6557h五、pwn9(寄存器间接寻址)

2025-01-22 19:18:42 406

原创 萌新的CTF做题笔记 (慢慢摸索版)2

需要找到需要的system的地址,因为在虚拟机中执行程序得到Holle World,所以在它下面找到system(0x0804849E)还需要找到bin/sh的地址shift+F12打开string window(可在窗口中打开),一眼看到有bin/sh。栈溢出后我们需要返回一个函数,system,去拿到bin/sh权限,使程序可执行。通过返回到程序的特定代码片段控制程序的执行流程。还有很多不懂的知识,文章写得比较粗糙,还需向大佬们学习。链:覆盖缓冲区->system地址->bin/sh地址。

2025-01-09 17:13:04 243

原创 C语言学习笔记(学校里没学好版)探索一些PTA题目(2)

类比数组的输入,先通过循环输入遍历一行中的每列,在遍历行。(可以把题目中的行和列的输入范围加上)今天看了一道之前的考试题,感觉自己不会写就试着写了一下,和二维数组有关,涉及数组的应用。比较和输出均可依靠循环体来实现,通过比较可以选出局部最大值并输出,可以引入一个变量作为标志,当有最大值是赋值为1。应该还有很多错误的地方,还需向大佬们学习。没有局部最大值时该怎么写呢?1.声明二维数组并输入数据。

2025-01-08 17:30:48 291

原创 新手的CTF做题笔记(慢慢摸索版)

保护机制:NX即No-eXecute(不可执行)的意思,NX(DEP)的基本原理是将数据所在内存页标识为不可执行,当程序溢出成功转入shellcode时,程序会尝试在数据页面上执行指令,此时CPU就会抛出异常,而不是去执行恶意指令。第三个参数 0x200uLL 是要读取的字节数,0x200 是一个十六进制数,表示 512 字节,uLL 表示这是一个无符号长整型常量。因此,这条语句的意思是从标准输入(键盘)读取最多 512 字节的数据,并将读取的数据存储到 buf 指向的缓冲区中。拿到bin/sh的权限。

2025-01-08 17:27:30 375

原创 C语言学习笔记(学校里没学好版)探索一些PTA题目

文章目录前言大一上期匆匆过去,对C语言的掌握并不好,所以想探索一些PTA题目,把通过自己思考并借助搜索引擎写出来的题目发出来,大家一起探索,也激励自己学习。(些许粗糙)一、PTA题目二、步骤分析。

2025-01-07 20:09:08 411

原创 在虚拟机安装过程中遇到的问题

2:在邮箱给的网址中修改密码(一定要记住改的密码),这步我是在手机上操作的(手机上可能比电脑快一点),改完后直接在手机上登录官网。个人建议下载23版(24版可能很卡顿界面不太流畅,可能是因为与显卡有冲突,所以如果高版本的虚拟机打开卡顿可以尝试下载低版本)这是电脑小白的第二篇发文,只记录和总结了一些把我卡住的问题,也是对这段时间装虚拟机的总结(2:进入后直接点击下载即可(注意:不用在本电脑上装载,如果出现选项点击下载镜像即可)3:运行你的虚拟机(希望都是流畅的)展示一个实例(拖文件法)

2024-10-06 15:43:47 5419

原创 关于电脑小白学习期装虚拟机的解决办法

本人是一个刚接触电脑不久的小白,对于虚拟机的工作原理所知甚少,这也是我的第一篇博客,记录了我装虚拟机的过程,还望各位大佬指正。装虚拟机的时候我发现vmware 的官网比较难登录进去,所以查阅了一些博客,但是还是弄不好,于是我上B站搜索。由于对虚拟机不了解所以我们可以去看看B站上的大佬是怎么讲的。之后我们需要在夸克网盘下载VMware精装版。下好之后我们就可以打开VMware新建虚拟机。我们可以直接在浏览器搜索下载。之后下载咱想下的版本。

2024-09-30 11:01:34 230

ctfshow-堆前置pwn150~pwn153做题笔记

ctfshow-堆前置pwn150~pwn153做题笔记

2025-12-15

空空如也

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

TA关注的人

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