ret2win32 Write up
0x00 前言
群里大佬发的网站,花点时间做下
0x01 源码分析
1 | char *pwnme() |
简单的栈溢出,gdb调试
1 | mask@mask-virtual-machine:~/ROP_Emporium/ret2win32$ gdb ./ret2win32 |
然后需要跳转的地址为0x8048659
1 | .text:08048659 ret2win proc near |
那么偏移为44
0x02 编写exp
1 | from pwn import* |
执行:
1 | mask@mask-virtual-machine:~/ROP_Emporium/ret2win32$ vim exp.py |
ret2win 64
0x00 前言
和32位的思路一样
0x01 编写exp
1 | from pwn import* |
运行:
1 | mask@mask-virtual-machine:~/ROP_Emporium/ret2win$ vim exp.py |
Split 32
0x00 前言
继续刷
0x01 源码分析
1 | char *pwnme() |
存在栈溢出,然后存在一个usefulFunction,
1 | int usefulFunction() |
但是调用的不是我们想要的cat
,那么凭直觉,应该在其他地方,搜一下
1 | .data:0804A030 public usefulString |
0x02 调试
1 | mask@mask-virtual-machine:~/ROP_Emporium/split/split32$ gdb ./split32 |
计算出了偏移为44,开始编写exp
0x03 编写exp
1 | from pwn import* |
运行:
1 | mask@mask-virtual-machine:~/ROP_Emporium/split/split32$ python exp.py |
callme32 writeup
0x00 前言
我擦,这不就是之前ctf群的入群题目嘛!!!(((φ(◎ロ◎;)φ)))
0x01 分析
分析过程和之前那道题一样,这里直接写exp了:
1 | from pwn import * |
运行:
1 | mask@mask-virtual-machine:~/ROP_Emporium/callme32$ python exp.py |
callme64 writeup
既然写过的就快速过一遍,直接写exp:
1 | from pwn import * |
运行:
1 | mask@mask-virtual-machine:~/ROP_Emporium/callme$ python exp.py |