level 13

2020. 9. 1. 15:51

이번에는 검증값이 있는 문제군요.

i에 들어있는 0x1234567이 바뀌면 BOF 공격을 감지하는 프로그램입니다.

이를 우회하는 문제인거 같네요.

 

처음에 0x418 == 1048 바이트의 공간을 할당하고, i변수는 $ebp-0xc에서 가져오네요. long이 4바이트의 크기를 가지고 있는 것을 감안하면 나머지 8바이트는 dummy 겠죠? 이를 idummy라고 칭하겠습니다.

 

또한 1048-12 == 1036인데, buf변수는 1024바이트였습니다.

따라서, 나머지 12바이트는 dummy라는 것을 알 수 있고 이를 bufdummy라고 칭하겠습니다.

 

buf(1024) + bufdummy(12) + 0x1234567(4) + idummy(8) + SFP(4) + RET(4)

이제 argv[1]이 위치하는 곳이 어딘지 확인해야겠군요.

 

한참에서야 찾았습니다 ㅋㅋ

 

이제 0xbffff83a라는 주소를 가지고 BOF를 터트려보겠습니다.

 

NOP*1011 + ShellCode*25 + bufdummy(12) + RET(4)

성공적으로 쉘을 획득했습니다.

'[▒] 보안 > FTZ' 카테고리의 다른 글

level 15  (0) 2020.09.01
level 14  (0) 2020.09.01
level 12  (0) 2020.09.01
level 11  (0) 2020.09.01
level 10  (0) 2020.08.27

BELATED ARTICLES

more