메로나
[HackCTF] Basic_Bof #1 (100) write-up 본문
포너블 시작했습니당!!!! 시스템 해킹의 가장 기초적인 기법 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를 사용하여 페이로드를 작성해 보았습니다.
실행 해 보면,
성공적으로 쉘이 열리는것을 볼 수 있습니당~_~
포너블 시작한지 얼마 안되었습니다. 틀린 부분이 있다면 개인적으로 연락 주시면 바로바로 고치도록 하겠습니당!!
'Wargame & CTF > Pwnable' 카테고리의 다른 글
[pwnable.xyz] sub (50) write-up (0) | 2020.08.09 |
---|---|
[pwnable.xyz] welcome (50) write-up (0) | 2020.08.05 |
[HackCTF] x64 Buffer Overflow (150) write-up (0) | 2020.07.21 |
[HackCTF] 내 버퍼가 흘러넘친다!!! (150) write-up (0) | 2020.07.21 |
[HackCTF] Basic_Bof #2 (100) write-up (0) | 2020.07.06 |