systemhacking
-
level 15. 풀이System hacking training/Hackerschool F.T.Z 2017. 11. 26. 23:24
F.T.Z level 15를 풀이해 보았습니다. 로그인 후 힌트를 확인해보니 level14의 소스코드와 유사합니다. 하지만 포인터 변수를 사용한 점이 다른것을 알 수 있습니다. 즉, check이 가리키는 값이 0xdeadbeef 와 일치해야 쉘을 띄어주는 것을 확인할 수 있습니다.또 이전의 문제와 같이 fgets함수의 입력길이가 잘못되었으므로 버퍼오버플로우 공격을 하면 쉘을 띄울 수 있을것으로 보입니다. level15의 디렉토리에서 gdb사용이 제한되므로 공격해야할 attackme 라는 파일을 cp 명령어로 tmp 파일로 복사를 해줍니다. 이렇게 복사한 파일을 gdb를 통해 확인해 봅니다. lea eax, [ebp-56] 한 다음 eax를 push 해주는 것으로 보아 버퍼의 시작임을 알 수 있습니다. 또..
-
level12. 풀이System hacking training/Hackerschool F.T.Z 2017. 10. 23. 22:35
해커스쿨 F.T.Z level12 풀이입니다. ls -al 로 디렉터리와 파일을 보니 11번과 같이 attackme에 setuid가 걸린것을 확인 할 수 있습니다. 힌트 내용은 이러합니다. 11번의 소스코드와 유사합니다만 이 문제에서는 포맷스트링에 대한 취약점은 없어보입니다. get()의 취약점을 이용하여 공격을 하면 될것같습니다. get()는 문자열의 수를 제한하지 않아 버퍼오버플로우 공격의 대상이 되는 함수입니다. 이런 취약점으로 문제를 풀어보았습니다. 11의 풀이와 마찬가지로 cp 명령어를 이용하여 tmp 디렉토리에 attackme 실행파일을 복사해줍니다. 이는 level12의 디렉토리에서 gdb 사용을 제한한것에 대한 대비책입니다. 복사된 파일을 gdb를 통해 분석해보았습니다. 힌트 내용과는 달리..
-
level 11. 풀이System hacking training/Hackerschool F.T.Z 2017. 10. 15. 03:13
오랜만에 F.T.Z를 풀었습니다. bof에 대한 개념부족, gdb 사용법, 쉘코딩에 대한 학습이 부족하여 풀이를 이제서야 하게되었네요ㅠ. (3주전 풀이를 보고 풀어보았는데 이해가 가지 않아서 다시 풀이합니다.) level11의 풀이를 시작합니다. attackme의 소스인듯 합니다.로그인 후 hint를 열어본 결과 여기엔 취약점이 두개가 있더군요. 1. 버퍼오버플로우 취약점2. 포맷스트링 취약점 저는 버퍼오버플로우 취약점에 대해 공부를 하였으니 이 취약점을 갖고 문제를 풀었습니다. 일단! 프로그램을 실행시켜보니 segmentation fault를 출력하고, 인자로 문자열을 넘겨 주면 그대로 출력을 해주네요! 아직 얕은 수준의 지식이지만 달고나님의 문서를 보고 공부한 결과ret주소를 찾아야한다는 것을 알게 ..