본문 바로가기
Wargame/pwnable.kr

pwnable.kr memcpy

by morae23 2019. 2. 13.

memcpy.c 코드를 보면, for문을 10회 돌면 플래그를 얻을 수 있을 것으로 보인다.



fast_memcpy() 부분 코드이다.



실행을 해보면,



movntps에서 segmentation fault가 발생하는 것을 볼 수 있다.

그 이유는, 16바이트로 align 되어 있지 않기 때문이다.


main() 코드를 다시 보면, 입력한 size 크기만큼 malloc하기 때문에

(16의 배수 - heap_header_size) 의 크기를 입력해주었다.


exploit 코드는 아래와 같다.



실행 결과 플래그를 얻을 수 있다.




[exploit.py]

from pwn import *


r = remote('pwnable.kr', 9022)


for i in range(10):

    data =  str(int(r.recvuntil(': ').split(' ')[-3]) - 8)

    r.sendline(data)


r.recvuntil('thanks for helping my experiment!\n')

print r.recvline()


'Wargame > pwnable.kr' 카테고리의 다른 글

pwnable.kr horcruxes  (0) 2019.03.06
pwnable.kr uaf  (0) 2019.02.21
pwnable.kr blukat  (0) 2019.02.11
pwnable.kr leg  (0) 2019.02.11
pwnable.kr shellshock  (0) 2019.02.01

댓글