본문 바로가기
System Hacking/해커스쿨 F.T.Z Hacking Zone

해커스쿨 F.T.Z Level 17

by En_Geon 2020. 2. 27.

level 17 로그인 후 hint를 본다.

 

level 17 hint

 

level 16 hint 코드에서 shell 함수가 빠지고 setreuid는 main으로 들어오게 됐다.

이렇게 되면 level 16처럼 shell 함수의 주소도 없고 level 14처럼 글자를 대조하는 것도 아니고 level 15처럼 주소를 넣는 것도 할 수 없다.

여기서 해야 하는 건 setreuid가 실행되고 쉘을 실행해야 level 18의 uid를 얻을 수 있다는 것이다.

 

일단 gdb를 확인해 본다.

 

level 17 gdb attackme

 

 

main+3에서 0x38(56)byte 확보하고 main+6에서 0x8048490 주솟값을 ebp-16에 저장한다.

main+57에서 ebp-16을 eax에 저장하고 eax를 call 해서 call 함수를 불러온다.

코드는 다르지만, 프로그램의 메커니즘은 level 16하고 같다.

 

더보기

 

여기서는 shell 함수도 없고 할 수 있는 게 없다. 그러므로 직접 쉘을 실행시켜줘야 한다.

level 11에서 만든 eggshell 환경변수로 call 함수에 쉘코드를 넣어주면 된다.

 

eggshell로 주소를 알아온다.

 

eggshell

 

쉘코드의 주소를 알았으면 공격을 한다.

 

공격 실행

'System Hacking > 해커스쿨 F.T.Z Hacking Zone' 카테고리의 다른 글

해커스쿨 F.T.Z Level 19  (0) 2020.02.29
해커스쿨 F.T.Z Level 18  (0) 2020.02.29
해커스쿨 F.T.Z Level 16  (0) 2020.02.27
해커스쿨 F.T.Z Level 15  (0) 2020.02.26
해커스쿨 F.T.Z Level 14  (0) 2020.02.24

댓글