- 博客(176)
- 收藏
- 关注
原创 buu-jarvisoj_fm-好久不见52
可以知道是第11个参数,%11$ 定位到这个位置,然后%n往这个位置写入4。x等于4x等于4x等于4x等于4。1.先用pwndbg调试得到。3.构造ROP链,发送连接。2.查看获取x的地址。
2025-03-28 17:17:12
170
原创 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
原创 山石-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
原创 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
原创 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-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
原创 【第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
原创 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
原创 simpleAndroid-好久不见19
AndroidManifest.xml 文件,里面标识了 app 一开始显示的 Activity,CheckActivity 这一个类,发现这里就是对于输入进行检测的地方,isValidInput 对输入的格式进行检测,然后通过 CheckData 来进行比较,查看这个方法,发现它是 native 层的,因此需要看 so 文件。或者直接打开压缩包的方法打开,可以看到这里存在 so 文件,这里有四种架构,是由相同的源码编译而来,可以选一个反编译效果比较好的架构进行静态分析,这里选择的架构是。
2024-12-03 21:31:54
271
原创 [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关注的人