-
해커스쿨 ftz level14System/HackerSchool ftz level 2019. 6. 13. 02:54
글을 쓰기 싫거나 한게 아니고 오늘은 되게 설명할 게 짤막해서 사진이 3개입니다..
일단 힌트를 보면 int형 변수 crap, check을 호출하고 char형 배열 buf(크기는 20)까지 호출합니다.
45바이트만큼 buf에 fgets 함수를 사용하고요 check 변수값은 0xdeadbeef여야 setreuid 함수가 작동하는 거 같네요
일단 분석을 다시 해서 주소 같은걸 살펴보자면 <main+17>과 <main+29>에 [ebp-56]과 [ebp-16]가 뭔가 크기를 나타내는듯 해서 수상하죠.
일단 [ebp-56]에는 fgets 함수의 인자를 저장하고, [ebp-16]에 0xdeadbeef가 있어야 된다고 하는 것 같네요
일단 56-16하면 40이거든요, 근데 문자열이 들어가는(인자 저장) 함수가 fgets 함수고 지금 [ebp-16] 주소에는 뭐가 있는지 모르니까 그냥 그 주소에다가 0xdeadbeef 넣으면 될 거 같은데요?
그래서 "A"를 40번 써준 뒤에 0xdeadbeef를 리틀 엔디안 방식으로 삽입해보면 딸칵하고 레벨 열리는 소리가 납니다.
쉘코드 사용도 없이 간편한 레벨이었네요 뭔가 난이도가 거꾸로 됐는데
2019.6.13
이제 슬슬 시험공부..를..
'System > HackerSchool ftz level' 카테고리의 다른 글
해커스쿨 ftz level16 (0) 2019.06.15 해커스쿨 ftz level15 (0) 2019.06.14 해커스쿨 ftz level13 (0) 2019.06.12 해커스쿨 ftz level12 (0) 2019.06.11 해커스쿨 ftz level11 (0) 2019.06.11