茗茗之中

人生苦短,及时行乐

ORW

ORW rop链 payload = p64(pop_rdi) + p64(rop_addr + 0x98) + p64(pop_rsi) + p64(0)+ p64(open_addr) payload += p64(pop_rdi) + p64(3) + p64(pop_rsi) + p64(data_addr) + p64(pop_rdx) + p64(0x30) + p64(rea......
pwn

一些小细节

异或避开敏感字符检测 本地先行异或 加码 避开字符检测 image-20230112000449878 将结果存入data段后 image-20230112000625442 利用ROP的XOR进行解密 image-20230112000649256 最后再读取 image-20230112000735119 `PS:查询段权限 $> readelf -S xxxx` ......
pwn

格式化字符串

格式化字符串 特点: 可以看查任意地址内容 %p 或 %{num}$p 可以任意写地址 %n 或 %{num}$n 须:栈中拥有指针 书写格式为 %{addr}c%{num}$n (一般不行 得逐字节写入) 即:%{addr}c%{num}$hhn 例如:写入0x40158a 到 stack_chk_fail_addr 中 image-20230121151552065 image-2......
pwn

传参方式

学习了传参方式 64位与32位的区别 64->rdi ......先寄存器再栈 image-20230110145137612 image-20230110000546106 32->栈传参 学习了call system函数与system函数在64位与32位下分别的区别 32位下 image-20230110000716996 64位下 image-20230110......
pwn

栈迁移的学习

栈迁移的学习 unctf的一道题 `ssize_t back()` `{` `char buf[32]; // [rsp+0h] [rbp-20h] BYREF` `printf("gift:%p\n", buf);` `return read(0, buf, 0x30uLL);` `}` 能运行到后门函数 后门函数给了一块栈中的空间和开始......
pwn

杂七杂八

杂七杂八 Strcmp()作条件的绕过 利用"\0"作为比较的第一个字符 image-20221108093132384-1667871106786-1 r.sendlineafter(b"Enter your flag:\n",'\0') my_read读入”\0“到s1跳过判断直接到后门函数。 CTF All In One--firmianay ......
pwn