自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PWN45、PWN46:Ret2libc中利用write泄露libc地址

在这两道题目中,泄露的核心思路是先通过 ROP 调用write函数,把 GOT 表中某个函数对应的真实运行时地址输出出来,从而绕过 ASLR;因为程序本体中的 GOT 表项保存的是该函数在 libc 中的实际地址,所以拿到泄露值后,就可以用libc_base=leak-libc.sym[func]计算出 libc 基址,进一步得到system和'/bin/sh'等关键符号地址,最后构造第二阶段 ROP 链执行system('/bin/sh')获取 shell。

2026-08-17 00:05:08 213

原创 ctfshow PWN43、PWN44详细题解

这道题目跟之前的相比又增加了难度,没有任何现成的/bin/sh或者sh字符串可用,那么这道题的突破口就是这里我们先聊聊啥是BSS段:我们其实可以把BSS段想象成程序在内存里的“公共草稿纸”,在程序编译后,所有没有初始化的全局变量,都会被统一丢进BSS段,当程序启动时,该区域清零。由于它的位置在内存中是固定的,地址不会变,这也就意味着如果我们能控制程序往这个地址写入数据(例如gets函数),我们就能在这上面写下任意字符串,然后用system读取。

2026-08-09 19:48:06 215

原创 ctfshow PWN41、PWN42详细题解

在我们之前做的题目中,即便system和/bin/sh分开了,但是它们也是都存在的,但是接下来的两道题却是完全不同的情形:只有system但没有/bin/sh但其实我们完全不需要用到/bin/sh,因为system本质上是调用shell执行命令,而在很多环境下sh本身就对应着系统中的默认shell,是能够与/bin/sh达到相同效果的。那么这道题的思路就很清晰了,框架和PWN39一样,只需要把/bin/sh的地址换成sh的地址就行了。

2026-08-08 23:12:35 158

原创 ctfshow PWN39、PWN40详细题解

老规矩,我们先用checksec看一下:可以看到是32位的程序,没有金丝雀保护且代码段地址固定所以这道题的攻击思路就很明显了:先通过溢出漏洞把返回地址覆盖成system的地址,紧接着写上system的返回地址,最后再写上/bin/sh的地址即可。

2026-08-06 22:16:48 167

原创 ctfshow PWN37、PWN38详细题解

先用checksec查一下:发现开启了NX保护,但其实对于这道题没啥影响我们进入IDA,和之前的题目一样,还是ctfshow函数中存在溢出漏洞:覆盖返回地址所需长度为0x12+0x4=0x16(22)在题目中提示说留给了我们一个32位的system后门函数,那我们只需要把它给找到就行了实际上也很好找,就是左侧函数列表里面的backdoor函数:由于这道题目跟上一道一样,都是no PIE,因此我们直接硬编码地址即可:运行脚本即可拿到flag如下:先用checksec看一下:除了由32位变成64位以

2026-07-31 22:03:43 179

原创 ctfshow PWN35、PWN36详细题解

首先使用checksec查看保护情况:从图中可以看到程序是32位的,并且开启了NX保护,意味着我们无法直接在栈上执行shellcode。我们把文件拖入IDA,跟进主函数里面的ctfshow函数:继续跟进dest数组,可以看到栈帧布局如下:可以看到要想要覆盖到返回地址,我们填充的字符数量应为0x6C+0x4=0x70(112)这道题能让溢出成功的关键就在于main函数里面的signal。

2026-07-30 10:30:08 435

原创 NSSCTF P703、P3846 题解

用IDA打开main函数:发现根本看不懂()既然如此,我们就看看字符串:发现在最下面有一个非常像flag的字符串: BJD{%d%d2069a45792d233ac}但是直接提交的话是不对的,而且括号里的%d看起来很奇怪我们点击跟进,然后右键选择交叉引用:交叉引用跟进后,我们就可以发现代码简单多了:至于为啥会出现%d也很清晰了,因为它用了printf函数()我们把两个%d换成19999,0就OK了最终flag:NSSCTF{1999902069a45792d233ac}

2026-04-17 20:39:33 753

原创 NSSCTF P880、P2593题解

从题目的分类可以看出来,这道题跟花指令相关。这里我们先简单介绍一下花指令:那么接下来就是实战部分:首先打开IDA,发现导航栏里面并没有main函数:我们这里选择search -> text可以来搜索main函数(或者快捷键Alt+t)这句是最经典的花指令之一,,CPU 会正常、正确地执行跳转,完全不影响程序原本逻辑;但反汇编工具会被误导,从 loc_1144这个错误位置开始解析代码,导致指令边界错位、后续代码全部乱掉,从而达到干扰分析、隐藏真实逻辑的目的。

2026-04-14 10:26:47 703

原创 NSSCTF Reverse P1996、P2654题解

所以核心逻辑第10到18行其实等价于:i <= 19;i++) {} else {解密脚本如下:'''pythonflag = []if i & 1:else:'''C++int main()i<=19;i++)if(i%2==1)elsei<=19;i++)return 0;

2026-04-11 23:29:02 968

原创 BUUCTF Reverse 5-6详细题解(持续更新)

1.壳本质上就是程序的包装,这样程序会先运行壳,对原程序的代码/数据进行解密/压缩,相当于是给一个箱子上了锁,我们只能看见锁,而看不见里面的内容。2.壳的种类分为压缩壳、解密壳压缩壳:只压缩程序,无强加密(例如UPX),脱壳难度低加密壳:高强度加密,防止程序被破解/逆向,脱壳难度高。

2026-03-09 21:07:06 953

原创 BUUCTF Reverse1-4详细题解(持续更新)

先查壳,发现是64位无壳:用IDA打开后,在左侧函数列表中找到main函数即可:先查壳,发现是64位无壳:用IDA打开,按Shift+F12可以查看字符串:我们选中其中的this is the right flag!,查看它被哪些代码位置引用过:直接跳转地址,然后按Tab键查看源代码(DATA XREF是数据交叉引用的缩写,可以用来显示某个数据被哪些代码位置引用过)从源代码中我们可以看出,当Str1和Str2完全相同时,才会输出this is the right flag!(这里的strncmp函数的意思

2026-03-07 17:37:26 847 1

原创 BUUCTF Misc26-30详细题解(持续更新)

打开后发现是一张图片,下面还有一串图案,可以根据题目猜测这是盲文根据盲文对照表翻译一下:可以推测出密码是输入密码,可以得到一段音频先听一下,感觉像摩斯密码(点击Upload上传后再点击Play就可以了)把结果中的CTF换成flag提交,发现不对,原来是要把所有大写换成小写才行(悲~)

2026-03-06 20:57:38 982

原创 王爽《汇编语言》第四版2.3、实验答案详解

答案:4次。三次是在读取命令后,一次是执行命令(jmp ax)。补充:我们首先要明确一点,ip是先自增再执行命令的。也就是说ip在读取完jmp ax后,会先自增,然后再执行jmp ax的命令。1.环境配置 由于在现在的 Win10/11 的系统中,已经没有原生的纯 DOS 环境了,加之 64 位 Windows 操作系统取消了 16 位虚拟 DOS 机(VDM)支持,导致debug.exe等传统 16 位调试工具无法直接运行。因此,我们需要搭建一个 “模拟 DOS” 的环境,通过 DOSBox

2026-02-23 12:41:23 1411

原创 王爽《汇编语言》第四版2.1、2.2答案详解(持续更新)

(1)F4A3H31A3H3123H6246H826CH6246H826CH04D8H0482H6C82HD882HD888HD810H6246H算就完了~add ax,axadd ax,axadd ax,ax。

2026-02-19 21:35:40 929

原创 王爽《汇编语言》第四版1.1答案解析(持续更新)

80386的数据总线是32位,也就是一次可以读取32/8=4B的数据,共需次数:1024/4=256次。:8086的数据总线是16位,也就是一次可以读取16/8=2B的数据,共需次数:1024/2=512次。简单来说,地址总线有多少位,就能够找到2的多少次方的。:列方程8*2^10=2^n,解出来的n就是地址总线的宽度。:存储单元的数量为2^10=1024个,编号从0到1023。:寻址能力=2^地址总线的宽度,再进行单位换算即可。微型机的存储器的一个存储单元可以存储一个字节。

2026-02-19 10:17:43 841

原创 BUUCTF Misc21-25详细题解(持续更新)

先打开WinHex查一下flag可以看到被base64加密的flag。

2026-02-18 22:58:28 577

原创 BUUCTF Misc详细题解(16-20)

打开后是一张图片先放入WinHex里面看看,结果没有什么发现。

2026-02-15 20:47:14 686

原创 BUUCTF Misc 11-15详细题解(持续更新)

打开后放入Wireshark里面。根据题干提示,抓取到的是一段文件上传的数据,可以联想到之间做的wireshark题目。flag可以直接找到。

2026-02-14 20:18:28 566

原创 BUUCTF Misc 6-10详细题解(持续更新)

下载完后用Wireshark打开题干中有表述:黑客抓到的是管理员登陆网站的一段流量包,而在绝大多数网站的登陆场景中,使用的都是post请求。

2026-02-13 08:48:20 551

原创 BUUCTF Misc 1-5详细题解(持续更新)

题干已给出。

2026-02-12 21:07:02 914 1

空空如也

空空如也

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

TA关注的人

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