메로나

[HackCTF] Basic_Bof #1 (100) write-up 본문

Wargame & CTF/Pwnable

[HackCTF] Basic_Bof #1 (100) write-up

m3r0n4 2020. 7. 6. 00:22

오랜만에 보는 아이린입니다. 귀엽습니다.

포너블 시작했습니당!!!! 시스템 해킹의 가장 기초적인 기법 Buffer Overflow 기법에 대해 알아보기 위해 Basic_Bof 문제를 풀어보도록 합시당.

값을 넘겨주면 버퍼를 보여주고 check 하는 값을 보여주고 있습니다. pwndbg로 한번 까보도록 합시당~_~

보니 ebp-0xc 부분에 체크하는 값이 들어있고, fgets함수로 ebp-0x34부터 값을 받아오는 것을 알 수 있습니다. 그러니 페이로드를 짤 때 dummy값을 40바이트만큼 할당해 주면 check하는 값을 변조할 수 있다는 것을 알 수 있습니다. 그 다음 0xdeadbeef와 check값을 비교한다는 것을 알 수 있는데, 만약 0xdeadbeef값과 check과 같다면 어떻게 될 지 IDA로 까보도록 합시다.

 

0x4030201과 같지 않고 0xdeadbeef와도 같지 않다면 그냥 오버플로우 됐다는 것을 알려주는 것 같고, 0xdeadbeef와 같게 된다면 쉘을 열어주는 것 같습니다. 그러면 페이로드는

Dummy(40) + check(0xdeadbeef) 

가 되는 것을 알 수 있습니다. pwntools에 좀 더 익숙해지기 위해 pwntools를 사용하여 페이로드를 작성해 보았습니다.

실행 해 보면,

성공적으로 쉘이 열리는것을 볼 수 있습니당~_~

 

포너블 시작한지 얼마 안되었습니다. 틀린 부분이 있다면 개인적으로 연락 주시면 바로바로 고치도록 하겠습니당!!