自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 buu-jarvisoj_fm-好久不见52

可以知道是第11个参数,%11$ 定位到这个位置,然后%n往这个位置写入4。x等于4x等于4​​​​​​​x等于4​​​​​​​x等于4。1.先用pwndbg调试得到。3.构造ROP链,发送连接。2.查看获取x的地址。

2025-03-28 17:17:12 170

原创 buu-bjdctf_2020_babystack2-好久不见51

【代码】buu-bjdctf_2020_babystack2-好久不见51。

2025-03-21 22:18:19 213

原创 buu-ciscn_2019_ne_5-好久不见50

a1是我们外面传进来的src = 48,读取128个就造成了溢出。通过分析程序的漏洞点(例如通过格式化字符串漏洞或堆溢出漏洞),找到可以覆盖返回地址的偏移量。程序的交互逻辑需要先输入密码,然后选择操作,最后通过溢出漏洞触发 ROP 链。ADDLog():我们看到这里是输入log,跟我们的flag有关系。程序提示输入新的 log,此时发送构造的 ROP 链。通过网络交互,发送构造的 ROP 链,并触发漏洞。函数的地址(用于防止程序崩溃)。程序提供选项,需要选择。填充到返回地址的偏移量。

2025-03-14 21:44:43 305 1

原创 buu-ciscn_2019_en_2-好久不见49

看来应该是return to libc。首先需要获取某libc函数的内存地址,有puts函数,直接就用puts了。

2025-03-14 17:19:08 159

原创 buu-not_the_same_3dsctf_2016-好久不见48

作用:从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。原型:FILE *fopen(const char *filename, const char *mode)原型:char *fgets(char *str, int n, FILE *stream)覆盖了栈,没有覆盖ebp,原因是不存在ebp,字符串空间的底部就是函数的返回地址。write函数的第三个参数,是 打印字符串的长度。

2025-03-14 16:09:15 243

原创 楚慧杯-bouquet-好久不见47

通过后序遍历和中序遍历序列构建二叉树,并使用广度优先搜索(BFS)进行层次遍历。重点:中序,后序和层次遍历。

2025-03-08 13:17:14 236

原创 强网杯青少年-EnterGame-好久不见46

函数chacha20_encrypt可以发现是进行了异或操作。

2025-03-08 13:13:08 193

原创 山石-Ultrasonic-好久不见45

指定应用程序运行时依赖的 .NET Framework 版本为。将字节的高3位右移5位,低5位左移3位,然后将它们按位或。弹出一个保存文件对话框,让用户选择保存加密图像的位置。将图像保存为PNG格式,然后对图像数据进行加密。将加密后的图像数据保存到用户指定的文件路径。确保应用程序在启动时加载正确的运行时环境。对结果取反(按位取反)。返回加密后的字节数组。检查是否有原始图像。遍历图像的每个字节。

2025-03-01 15:17:43 124

原创 山石-easycpp2-好久不见44

func1_1是循环右移的逻辑, fun1_2是将一个字节的第n位与第1位交换位置(因为二进制里只有0和1 所以交换位置其实就是取反, 也就是。查看导入表可以发现并没有导入srand, 所以rand的结果是固定的值。

2025-03-01 14:35:41 152

原创 考核xor-好久不见43

【代码】考核xor-好久不见43。

2025-03-01 14:10:11 120

原创 buu-ciscn_2019_n_5-好久不见42

变量)权限是全开的(可读、可写、可执行),并且没有启用 NX(No Execute,非执行)保护机制,因此可以直接在 BSS 段上构造 Shellcode,并通过溢出覆盖返回地址来执行它。函数将 Shellcode 的汇编代码转换为机器码,使其可以直接在目标程序中执行。提供的一个函数,用于生成一个简单的 Shellcode,其功能是调用。变量的地址,从而执行 Shellcode。:通过溢出覆盖返回地址,使其跳转到。,从而启动一个 shell。变量所在的 BSS 段。:如果攻击成功,通过。

2025-02-22 09:21:41 146

原创 buu-[OGeek2019]babyrop-好久不见41

打开设备文件,读取4个字节到buf中。将buf传递给函数,该函数似乎对输入进行某种处理并返回一个值v2。最后,将v2传递给函数。这个函数首先将a1转换为字符串s。然后从标准输入读取数据到buf中,并确保buf以\0结尾。比较buf和s是否相同,如果不同则退出程序。如果相同,则输出 "Correct" 并返回buf[7]的值。这个函数根据a1的值从标准输入读取数据到buf中。write首先,通过发送特定的 payload 来绕过某种检查(可能是程序中的某种验证逻辑)。构造 ROP 链调用。

2025-02-21 22:05:08 308

原创 buu-[HarekazeCTF2019]baby_rop-好久不见40

ROP(Return - Oriented Programming)链,即面向返回编程链,是一种在计算机安全领域,特别是在漏洞利用技术中使用的方法。ROP 链的核心思想是利用程序中已有的可执行代码片段(称为 “gadget”),通过巧妙地组合这些片段,构造出攻击者想要的功能,比如执行系统命令或获取更高权限等。这种方法可以绕过某些保护机制(如 DEP),因为 PLT 中的代码是程序本身的一部分,通常是可执行的。这是一个 PLT 条目地址,表示程序中某个动态链接函数的入口。的 PLT 地址放入 ROP 链中。

2025-02-21 20:57:35 469

原创 buu-get_started_3dsctf_2016-好久不见39

在漏洞利用中,这两条指令通常用于调整栈指针并返回到攻击者控制的地址。

2025-02-21 19:47:44 319

原创 VNCTF-kotlindroid-好久不见38

如果解密失败(如密钥或 IV 不匹配、密文格式错误等),捕获异常并输出错误信息。)进行逐字节异或操作,生成一个 16 字节的密钥。密文以 Base64 编码的形式给出。密文被解码为字节串后,尝试移除其中的。尝试对密文进行解密,并输出解密结果。使用生成的密钥和一个固定的 IV()初始化 AES-GCM 解密器。

2025-02-15 20:01:28 250

原创 buu-jarvisoj_level2_x64-好久不见37

通过覆盖缓冲区和 RBP,构造 ROP 链(使用 128 + 8 字节覆盖。指令的地址写入返回地址位置。字符串的地址压入栈顶,作为。函数的地址写入返回地址位置。,从而获取 shell。

2025-02-15 19:30:25 183

原创 buu-ciscn_2019_c_1-好久不见36

程序中函数地址 = libc 中函数地址 + 偏移量。通过泄露的地址减去 libc 中的函数地址,得到偏移量。)泄露其地址,取末尾3个字节查找对应的 libc 版本。利用偏移量计算其他函数地址(如。利用程序中已执行的函数(如。),构造 ROP 链执行。,获取 shell。

2025-02-15 17:49:29 281

原创 VNCTF-hook_fish-好久不见35

加载DEX文件:下载完成后,程序会加载DEX文件中的类(fish.hook_fish),并调用其中的check方法来验证加密后的口令是否正确。下载DEX文件:程序从指定的URL下载一个DEX文件(hook_fish.dex),并将其保存到设备的外部存储目录中。删除DEX文件:验证完成后,程序会删除下载的DEX文件。所以我们要下载dex。

2025-02-12 18:37:57 315

原创 buu-bjdctf_2020_babystack-好久不见34

函数读取用户输入,但没有正确限制输入长度,导致可以覆盖栈上的返回地址,从而劫持程序的执行流程。函数中被当作无符号整数处理,这将导致。是一个大小为12字节的字符数组。函数读取大量数据,从而覆盖栈上的。是一个用户可控的变量,用于指定。

2025-02-07 01:52:30 149

原创 buu-ciscn_2019_n_8-好久不见33

函数读取输入,但没有限制输入长度,导致用户可以覆盖栈上的变量,从而劫持程序的执行流程.函数没有限制输入长度,可以输入超过缓冲区大小的数据,覆盖栈上的。虽然保护全开,栈溢出漏洞。被设置为17,程序会调用。的值为17,从而触发。

2025-02-07 01:16:38 98

原创 buu-jarvisoj_level2-好久不见32

函数没有对输入长度进行严格限制,导致栈溢出漏洞。由于题目中没有直接的可利用函数(如。),需要利用32位程序的栈传递参数特性来构造攻击载荷。函数的地址插入到返回地址的位置,使程序跳转到。)覆盖栈上的空间,直到覆盖返回地址。字符串的地址,用于作为。

2025-02-07 00:59:38 197

原创 buu-[第五空间2019 决赛]PWN5-好久不见31

格式化字符串漏洞(例如 printf(buf)),将其与 dword_804C044 的值进行比较,如果密码正确(即输入的值等于 dword_804C044),程序会执行 system("/bin/sh"),否则输出 fail。通过格式化字符串漏洞修改 dword_804C044 的值,然后输入正确的密码触发 system("/bin/sh")。输入 4 作为密码,通过检查并触发 system("/bin/sh")。利用格式化字符串漏洞将 dword_804C044 的值修改为 4。

2025-02-03 03:30:24 195

原创 buu-jarvisoj_level0-好久不见30

嘶,我咋觉得这个也是栈溢出呢,找到读取的值,在再找到后门函数。

2025-02-02 03:04:14 231

原创 buu-pwn1_sctf_2016-好久不见29

这个也是栈溢出,不一样的点是,有replace替换,要输入0x3c字符(60),I=you 所以,20个I就行,找后面函数。使用fgets函数从标准输入读取一行数据,最多读取31个字符(第32个字符用于存储字符串结束符\0),存储在字符数组s中。将v3字符串对象中从v6开始到v4结束的部分赋值给input字符串对象。获取input字符串对象的C风格字符串表示,并将其地址赋值给v0。使用分配器v7创建一个字符串对象v6,初始化为"I"。将s中的字符串赋值给input字符串对象。创建一个字符分配器对象v5。

2025-01-29 01:16:18 255

原创 buu-ciscn_2019_n_1-好久不见28

通过开启NX保护,可以防止攻击者在堆栈、数据段、bss(未初始化全局变量段)中执行恶意代码,从而增强系统的安全性。v2的值是dword_4007F4 dd 41348000h。v1:溢出到变量v1,找到v1的地址,再加上后门函数即可。这道题有两种写法:一个是根据v1,另一个是根据v2。v2: 溢出到变量2,计算出v2的地址,

2025-01-29 01:10:28 199

原创 buu-warmup_csaw_2016-好久不见27

简单的栈溢出提,和上一题不一样的点是,后面函数,上一个是bin\sh,这一个是cat flag.txt,找后面函数地址即可。

2025-01-29 00:47:59 220

原创 buu-rip-好久不见26

简单的栈溢出,找到后面函数和输入的地址即可。

2025-01-29 00:44:56 229

原创 【第1天】简单镜像提取-好久不见25

首先用CTF-NetA-V工具把流量包中的文件分离出来,之后foremost把.img中的文件分离出来文件,其中有xls表格,里面有flag。哈哈,还是不会用rstudio工具恢复文件,用的其他工具。

2025-01-21 23:29:53 119

原创 攻防世界app3-好久不见24

新见到的,不知道能不能写出来。。。。。.ab:在对安卓手机进行取证时,经常需要备份手机的应用程序数据,备份后得到的数据文件为ab格式。hhhhhhhhh我又行了,就按这个步骤:安装必要的软件首先,确保你的KaliLinux系统中安装了Java和Maven。下载源码你可以使用git命令从GitHub克隆下载BouncyCastleProviderjar依赖于BouncyCastle库,需要下载并放置在lib/目录下。编译项目运行工具编译完成后,可以在target/目录下找到生成的。

2025-01-19 01:08:29 285

原创 攻防世界app2-好久不见23

将apk后缀改为zip,进行解压就可以拿到一个so文件。

2025-01-18 23:32:52 156

原创 攻防世界app1-好久不见22

【代码】攻防世界app1-好久不见22。

2025-01-18 23:08:15 186

原创 SUCTF-SU_BBRE-好久不见21

由function2处逻辑,解rc4得到第一段flagWe1com3ToReWorld,正常输入下执行完function0,程序结束,congratulate!逻辑在function1处,在看function0处strcpy有溢出问题,根据地址function1的地址40223D,参照ascii表转为相应字符,注意栈中存储小端序。哈哈哈哈哈哈,,,,纯汇编有大佬用工具反编译成伪代码吗。从40223d开始。好像是每个都加上索引了。

2025-01-18 23:03:47 263

原创 第1天 你是小哈斯?-好久不见20

通过暴力匹配可打印字符的SHA-1哈希值,来破解文件中存储的哈希值并还原出原始字符组成的字符串。所以flag{game_cqb_isis_cxyz}

2025-01-18 13:19:45 841

原创 周报(1.17)

但是89504E470D0A1A0A0000000D494844520000019000000190最后一个有文件头,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈逆序一下。p+q的值题目已经给出了,接下来只需要求出pq的值即可求出phi的值。print(f"找到匹配的号码:{number_str}")print(f"所有解码后的密码:{all_passwords}")print(f"解密后的明文m(ASCII):{m_ascii}")print(f"解密后的明文m:{hex(m)}")

2025-01-18 01:28:25 716

原创 周报(01.10)

真受不了了,动调调不了,没吾爱破解的账号,题目下载不了,找了往年的XCTF的简单中等安卓题。

2025-01-17 00:29:58 945

原创 simpleAndroid-好久不见19

AndroidManifest.xml 文件,里面标识了 app 一开始显示的 Activity,CheckActivity 这一个类,发现这里就是对于输入进行检测的地方,isValidInput 对输入的格式进行检测,然后通过 CheckData 来进行比较,查看这个方法,发现它是 native 层的,因此需要看 so 文件。或者直接打开压缩包的方法打开,可以看到这里存在 so 文件,这里有四种架构,是由相同的源码编译而来,可以选一个反编译效果比较好的架构进行静态分析,这里选择的架构是。

2024-12-03 21:31:54 271

原创 Newstar Ptrace-好久不见18

【代码】Newstar Ptrace。

2024-12-02 21:11:55 345

原创 misc-好久不见17

使用工具volatility查看镜像的信息。Xiaohong这个用户的密码解不开。

2024-12-01 21:43:09 273

原创 misc-好久不见16

【代码】misc-好久不见16。

2024-12-01 19:49:00 137

原创 [SWPUCTF 2021 新生赛]PYRE-好久不见15

输入字符串,进行encrypted_str函数加密,最后和w4s1PUYsJ8OYwpRXVjvDkVPCgzIEJ27Dt2I=进行比较即可。其实重点就是找到key(那就错了,因为找不到求table[(table[a] + table[b]) % 256就可以省好多),怎么求,直接输出诶,逆向求解即可。用pyc在线反编译网站编译一下,发现有很多0和o丢给ai,让ai给翻译了一遍.在把.pyc用010打开把第一行的头换掉换成struct.pyc第一行一样的。得到这个代码,那么我们就分析一下这个代码。

2024-11-26 20:19:09 201

空空如也

空空如也

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

TA关注的人

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