본문 바로가기

System Security

FTZ level20 FTZ level 20 - Question · level20 ID로 Login해서 clear의 password를 찾기 - Solution · 'level20' Directory의 hint 내용을 확인해보면 Hint로 attackme File의 Source Code가 제공된다. · 기존과는 Level과는 달리 gdb를 통해 분석할 수 없도록 main함수의 Symbol이 모두 삭제되어 있어 gdb를 통해 분석하는 것이 불가능하다. · Source Code 분석 ◦ fgets 함수와 printf에 서식문자가 사용되지 않은 점으로 Format String Attack을 해야 한다. · Format String을 통한 Memory 구조 확인 ◦ 문자열을 삽입 후 %08x의 개수를 증가시키면서 Test 해보면 12.. 더보기
FTZ level19 FTZ level 19 - Question · level19 ID로 Login해서 level20의 password를 찾기 - Solution · 'level19' Directory의 hint 내용을 확인해보면 Hint로 attackme File의 Source Code가 제공된다. · Source Code 분석 ◦ Stack Memory 영역에 buf 변수를 20Byte만큼 확보한다. ◦ 이전 문제와는 달리 'setreuid()' 함수가 사용되지 않았다. ◦ 'gets' 함수가 사용되었으며 이를 이용해 BOF 공격을 해야 한다. · File을 분석하기 위해서는 gdb를 사용해야하는데 원본 File이 level14에 대해서만 쓰기(w)가 가능하므로 쓰기 권한이 주어진 tmp Directory에 복사 후 분석.. 더보기
FTZ level18 FTZ level 18 - Question · level18 ID로 Login해서 level18의 password를 찾기 - Solution · 'level18' Directory의 hint 내용을 확인해보면 Hint로 attackme File의 Source Code가 제공된다. · Source Code 분석1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556#include #include #include #include void shellout(void);int main(){ char string[100]; int check; int x = 0; int count = 0;.. 더보기
FTZ level17 FTZ level 17 - Question · level17 ID로 Login해서 level18의 password를 찾기 - Solution · 'level17' Directory의 hint 내용을 확인해보면 Hint로 attackme File의 Source Code가 제공된다. · Source Code 분석 ◦ Stack Memory 영역에 crap 변수를 4Byte만큼, buf 변수를 20Byte만큼 확보한다. ◦ call이라는 함수 변수에 printit 함수의 주소를 넣어 printit 함수를 실행시킨다. ◦ 'fgets' 함수가 사용되었으며 이를 이용해 BOF 공격을 해야 한다. · File을 분석하기 위해서는 gdb를 사용해야하는데 원본 File이 level14에 대해서만 쓰기(w)가 가능하므로.. 더보기
​FTZ level16 ​FTZ level 16 - Question · level16 ID로 Login해서 level17의 password를 찾기 - Solution · 'level16' Directory의 hint 내용을 확인해보면 Hint로 attackme File의 Source Code가 제공된다. · Source Code 분석 ◦ Stack Memory 영역에 crap 변수를 4Byte만큼, buf 변수를 20Byte만큼 확보한다. ◦ call이라는 함수 변수에 printit 함수의 주소를 넣어 printit 함수를 실행시킨다. ◦ 'fgets' 함수가 사용되었으며 이를 이용해 BOF 공격을 해야 한다. · File을 분석하기 위해서는 gdb를 사용해야하는데 원본 File이 level14에 대해서만 쓰기(w)가 가능하므.. 더보기
​FTZ level15 ​FTZ level 15 - Question · level15 ID로 Login해서 level16의 password를 찾기 - Solution · 'level15' Directory의 hint 내용을 확인해보면 Hint로 attackme File의 Source Code가 제공된다. · Source Code 분석 ◦ Stack Memory 영역에 crap 변수를 4Byte만큼, check 변수를 4Byte만큼, buf 변수를 20Byte만큼 확보한다. ◦ check 포인터 변수가 가리키는 주소에 저장된 값과 0xdeadbeef를 비교해 일치하면 level15 권한의 sh Shell을 실행시킨다. ◦ 'fgets' 함수가 사용되었으며 이를 이용해 BOF 공격을 해야 한다. · File을 분석하기 위해서는 g.. 더보기
FTZ level14 FTZ level 14 - Question · level14 ID로 Login해서 level15의 password를 찾기 - Solution · 'level14' Directory의 hint 내용을 확인해보면 Hint로 attackme File의 Source Code가 제공된다. · 이 문제부터는 Format String 기법 또한 사용이 가능하지만 일단 BOF 기법을 이용해 연습한다. · Source Code 분석 ◦ Stack Memory 영역에 crap 변수를 4Byte만큼, check 변수를 4Byte만큼, buf 변수를 20Byte만큼 확보한다. ◦ check 변수의 값과 0xdeadbeef를 비교해 일치하면 level15 권한의 sh Shell을 실행시킨다. ◦ 'fgets' 함수가 사용되었으.. 더보기
FTZ level 13 FTZ level13 - Question · level13 ID로 Login해서 level14의 password를 찾기 - Solve · 'level13' Directory의 hint 내용을 확인해보면 Hint로 attackme File의 Source Code가 제공된다. · Source Code 분석 ◦ Stack Memory 영역에 buf 변수를 1024Byte만큼 확보한다. ◦ Stack Memory 영역에 i 변수를 4Byte만큼 확보한다. ◦ i 변수 영역에 0x1234567이라는 내용이 바뀌면 BOF 공격 경고문을 출력한다. ◦ 'strcpy' 함수가 사용되었으며 이를 이용해 BOF 공격을 해야 한다. · File을 분석하기 위해서는 gdb를 사용해야하는데 원본 File이 level14에 대해.. 더보기
FTZ level12 FTZ level 12 - Question · level12 ID로 Login해서 level13의 password를 찾기 - Solve · 'level12' Directory의 hint 내용을 확인해보면 Hint로 attackme File의 Source Code가 제공된다. · Source Code 분석 ◦ Stack Memory 영역에 str 변수를 256Byte 만큼 확보한다. ◦ 'gets' 함수가 사용되었으며 이를 이용해 BOF 공격을 해야 한다. · File을 분석하기 위해서는 gdb를 사용해야하는데 원본 File이 level13에 대해서만 쓰기(w)가 가능하므로 쓰기 권한이 주어진 tmp Directory에 복사 후 분석해야한다. · gdb를 통해 main 함수에 Breack Point를 설정.. 더보기
FTZ level11 FTZ level 11 - Question · level11 ID로 Login해서 level12의 password를 찾기 - Solve · 'level8' Directory의 hint 내용을 확인해보면 Hint로 attackme File의 Source Code가 제공된다. · Source Code 분석 ◦ Stack Memory 영역에 str 변수를 256Byte 만큼 확보한다. ◦ 'strcpy'가 사용되었으며 이를 이용해 BOF 공격을 해야 한다. · File을 분석하기 위해서는 gdb를 사용해야하는데 원본 File이 level12에 대해서만 쓰기(w)가 가능하므로 쓰기 권한이 주어진 tmp Directory에 복사 후 분석해야한다. · gdb를 통해 main 함수에 Break Point를 설정해 분.. 더보기