hgame2024week1_wp
re
ezASM
checkflag可以看出 cmp的逻辑是 异或0x22
exp
ezPYC
pycdc 反编译发现反编译失败,使用pydas反编译查看逻辑
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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
|
exp
ezUPX
发现是upx3.96,用upx -d 脱壳
是一个异或 0x32 cmp的逻辑
exp
ezIDA
flag打开就有了
pwn
EzSignIn
nc连接直接有flag
ezshellcode
一开始存len的是一个uint的变量,可以输入一个负数,让存len的uint变量溢出,这样myread就能read很多的数据,cmp有个类型转换,<=10也能过,ae64直接打就好了
Elden Random Challenge
一开始输入name那有一个溢出,可以把随机数种子覆盖掉,用ctypes模拟一遍随机数后,走到下边溢出打ret2libc
Elden Ring Ⅰ
栈迁移 + orw,libc里面的open有些奇怪,有一个用rsp 解引用写数据的操作后面还有几个取地址,就直接mprotect把bss改成可以执行的,然后写syscall版本的orw,说起来想找syscall ret的,但是没有找到
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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
|
ez_fmt
只有一次格式化字符串的机会,栈上有一个指向rbp的指针,本来是想把rbp改成backdoor的地址,然后走完vuln main两次leave ret栈迁移过去,试了一下要改的数据太大了,改不成功。 在栈上写一个backdoor的地址,把 rbp改到backdoor - 8的栈地址上,那走完vuln的leave ret的时候,rbp + 8就是backdoor的地址,走完main的leave ret就跳到backdoor了,要改的数据只有一个字节,需要爆破一下
misc
SignIn
puzzlesolver 一把梭
web
ezHTTP
把响应用base64解码一下得到flag
Bypass it
发现在注册那有一个跳转回登录的javascript代码,把JavaScript禁用后,注册账户,登录拿到flag