approvCTF - house-of-wade
0x01 analyze heap题. int __fastcall main(int argc, const char **argv, const char **envp) { char *v3; // rdi char nptr[4]; // [rsp+4h] [rbp-Ch] BYREF unsigned __int64 v6; // [rsp+8h] [rbp-8h] ...
0x01 analyze heap题. int __fastcall main(int argc, const char **argv, const char **envp) { char *v3; // rdi char nptr[4]; // [rsp+4h] [rbp-Ch] BYREF unsigned __int64 v6; // [rsp+8h] [rbp-8h] ...
虽然是pwn题,但感觉难度完全在逆向上… 直接尝试让ai还原原始代码(但就算看c代码还是花了一些时间理解) 0x01 AI还原代码 // Reconstructed from IDA/objdump: abyss::main // This file is a commented reverse-engineering note, not the original source. #inc...
0x01 编写gdb脚本辅助ai分析 程序要求输入一个32字节的key, 直接让ai静态分析,但是效果不好. 让ai生成需要dump的断点: ## 1) charset 检查(main.main.func2) ### 断点A:0x499a4c(取当前字符) - IDA语义:r = k[i](对应伪代码里的 r) - 观察变量: - i -> rcx ...
比赛期间这一题根本没看,赛后学习了@j0xnd03大佬的脚本,涉及到了large bin attack, unsafe-unlink等以前还没有学过的技术,期间看了很多blog恶补相关知识,一晚上+一上午才终于理清了攻击思路。第一次见到这么长的利用链,真让人兴奋! 0x01 - 语义分析 程序实现了一个简易虚拟机: void __fastcall __noreturn main(__int...
用patchelf设置binary路径 使用 --set-interpreter可以设置解释器路径,--set-rpath设置搜索动态库的路径。其中$ORIGIN是一个特殊的值,意为“根据当前的目录,相对地寻找lib”. 但是注意,这个选项对于–interpreter无效。 一个错误示范: (venv14) woc@myarch:ehaxCTF/revenge_womp $ ls . ...
// chall.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <sys/mman.h> #include <unistd.h> #define HAND_SIZE 14 #define B...
格式化字符串漏洞,但是这一题只会执行一次输入,也就是说,没有“泄露信息”的机会。 0x01 尝试劫持got表 首先想到的是:利用一次任意位置写的机会,劫持控制流。比如修改got表: pwndbg> checksec File: /ctf/pragyan26/talking_mirror/challenge Arch: amd64 RELRO: Partial...
没有防护,直接栈溢出 pwndbg> checksec File: /ctf/pragyan26/dirty_laundry/chal Arch: amd64 RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000)...
解出来的第一道heap相关的题,还是挺有成就感的。 0x00 调试方法 这一题给了 libc-2.27和一个比较老的libstdc++,直接在当前目录下把附件libc命名为libc.so.6会出问题,似乎是版本太过古老,会导致当前的shell命令都出问题,连ls都不能执行。咨询yxy学姐后,建议我用patchelf修改,但是这一题还有libstdc++,有一堆依赖不太好办。 无奈之下我开始...
最近闲来无事,又翻出了这一道题。起初我尝试用gdb脚本解,但是只解出了最后几个字符;后来看discord群里有大佬是用unicorn做的,也体验了一下这个工具,发现确实挺不错的。 0x01 gdb脚本尝试 刚拿到程序,发现是一个stack vm,含有大量gadget 函数 .text:00000000004013E0 .text:00000000004013E1 .text:0000000...