CTFZone 2022
OneChat
A message board chat program. Someone can leave a message and can view latest message. However, a buffer overflow happened in add_message function. Since no PIE and ASLR, a ROP chain can be made.
Learned to use LibcSearcher, since the organizer didn’t provide libc version in the challenge attatchment.
EXP:
1 | from pwn import * |
microp
A very simple program, just read in user input by sys_read and then return. First thing come up to mind is to take control of the syscalls by controling rax, which is the length of user input. However, I have no way to modify rdi to run sys_execve.
After 2019’s instruction, it is a classic SROP challenge. We can use sys_sigreturn to trigger the signal frame and get control of all registers. Here we use sys_mprotect to modify the previlege of the program page to get shellcode execution.
EXP:
1 | from pwn import * |