본문 바로가기

CTF_/pwnable.kr3

[pwnable.kr] bof wget를 이용하여 다운로드를 받아준다. wget http://pwnable.kr/bin/bof wget http://pwnable.kr/bin/bof.c gets부분에서 오버플로우가 일어날 수 있고, func 함수의 인자값인 0xdeadbeef를 0xcafebabe로 바꿔야 한다. gdb로 func 함수를 확인해보면, overflowme의 시작지점이 ebp-0x2c라는것을 알 수 있다. 스택을 그리면 overflowme[32] dummy[12] sfp[4] ret[4] 0xdeadbeef[4] 이렇게 된다. (python -c 'print "A"*52+"\xbe\xba\xfe\xca"';cat) | nc pwnable.kr 9000 52바이트의 dummy값을 넣어주고, cafebabe를 리틀엔디언으로 .. 2022. 1. 9.
[pwnable.kr] col flag는 권한이 없어 읽지 못하고, col.c는 읽을 수 있다. 인자값으로 20바이트를 입력해야하며, 4바이트씩 읽어 res에 더하게 된다. 더한 결과값이 0x21DD09EC와 같으면 flag를 출력한다. 반복문을 5번 실행하므로, 0x21DD09EC를 5로 나누면 0x06C5CEC8이 나오고 나머지는 4이다. ./col `python -c 'print "\xc8\xce\xc5\x06"*4+"\xcc\xce\xc5\x06"'` 리틀엔디언으로 작성해야한다. flag : daddy! I just managed to create a hash collision :) 2022. 1. 9.
[pwnable.kr] fd flag는 권한이 없어 읽지 못하고, fd.c 파일은 읽을 수 있다. 인자값을 받아서 0x1234와 연산을 하고, read함수로 결과값을 준다. read함수는 scanf 함수처럼 사용할 수 있으며, read(0, buf, 32); 형식으로 작성하면 된다. 인자값으로 0x1234의 10진수인 4660을 넣어주면 입력을 할 수 있다. flag : mommy! I think I know what a file descriptor is!! 2022. 1. 9.