wjh 发布于 收录于 Pwn CTF babydroidIntent 重定向 我们无法直接访问 file provider, 但是可以通过 Intent 重定向来窃取 flag 文件,代码来自 ppt。 通过 httpGet 请求把 flag 带出。 1 2 3 4 5 6 7 8 9 10 11 12 13
题目是安恒给的,难度主要是“简单”和“中等”的,估计是比较早的题目了。 PWN两个 PWN 都没给 libc,怀疑题目是比较早的题目,用 double free leak 了一下,发
wjh 发布于 收录于 Pwn CTF 在有些情况下,我们需要知道 TLS 的位置以便于修改其中的一些值,例如 canary、tcache struct ptr、key。 但是在大多数情况下,远程的 ld.so 距离 libc
wjh 发布于 收录于 Pwn CTF 00 前言在 HWS2021 入营选拔比赛的时候,遇到了一道 QEMU 逃逸的题目,那个时候就直接莽上去分析了一通,东拼西凑的把 EXP 写了出来。但实际上并没有怎么理解其具体是
wjh 发布于 收录于 Pwn 一、总览 Printf 格式化参数用法这部分内容理应当属于学习 C 语言过程中应该掌握的,但是实际上在漏洞利用过程中会用到一些平常编写程序不常见的内容,所以这
py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 def encode(s): str = '' for i in range(len(s)): res = ord(s[i]) ^ 32 res += 31 str += chr(res) return str def decode(s): str = '' for i in range(len(s)): res = ord(s[i]) - 31 res ^= 32 str += chr(res) return str m = 'ek`fz13b3c5e047b`bd`0/c268e600e7c5d1`|' strings = '' print decode(m) apkrev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 #include <cstdio> #include <cstring> unsigned char enc[] = { 0x8C, 0xC4, 0x00, 0xE6, 0x6A, 0x88, 0xB8, 0x90, 0xC2, 0x07, 0x6B, 0xA9, 0xC3, 0x0A, 0x3E, 0xC0, 0x44, 0xA6, 0xFE, 0x7E, 0xF0, 0x59, 0x4C, 0x83, 0x3D, 0x2B, 0xE2, 0xD3, 0x38, 0xCB, 0x82, 0x5B, 0x00 }; void rc4_init(unsigned char* s, unsigned char* key, unsigned long Len) { int i = 0, j = 0; unsigned char k[256] = { 0 }; unsigned char tmp = 0; for (i = 0; i < 256; i++) { s[i] = i; k[i] = key[i % Len]; } for (i = 0; i < 256; i++) { j = (j + s[i] + k[i]) % 256; tmp = s[i]; s[i] = s[j]; s[j] = tmp; } } void rc4_crypt(unsigned char* s, unsigned char* Data, unsigned long Len) { int i = 0, j = 0, t = 0; unsigned long k = 0; unsigned char tmp; for (k = 0; k < Len; k++) { i = (i + 1) % 256; j = (j + s[i]) % 256; tmp = s[i]; s[i] = s[j]; s[j] = tmp; t = (s[i] + s[j]) % 256; Data[k] ^= s[t]; } } int main() { unsigned char s[256]; unsigned char key[9] = "12345678"; rc4_init(s, key, 8); rc4_crypt(s, enc, 32); printf("%s", enc); return 0; } LittleJunk 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 #include <cstdio> #include "defs.