워게임
-
level 18. 풀이System hacking training/Hackerschool F.T.Z 2017. 12. 24. 20:40
안녕하세요 살충제입니다. 오랜만에 f.t.z를 풀어보네요.. 시험기간+프로젝트+발표준비로 너무 바쁜 하루를 보내왔습니다.ㅎㅎ 시험은 끝났지만 여전히 바쁘네요..ㅠ_ㅠ 아무튼 오늘 level 18을 풀이해보았는데요. 풀이를 시작합니다. ^____________^ 로그인 후 hint 파일을 열어보시면.. 소스코드가 아주 길게 나옵니다.....ㅎ #include #include #include #include void shellout(void);int main(){ char string[100]; int check; int x = 0; int count = 0; fd_set fds;-> 구조체/FD == 파일 디스크립터의 줄임 표현 printf("Enter your command: "); fflush(stdo..
-
level 17. 풀이System hacking training/Hackerschool F.T.Z 2017. 12. 3. 19:03
저는 해커스쿨 f.t.z를 풀이할때 한가지 습관이 있는데요. 문제 비밀번호를 획득하면 바로 풀어보는 습관입니다. (다들 그러실듯하지만..) level 16을 풀이하고 바로 level 17을 풀이하였는데 우연히 풀게 되어서 풀이를 작성하게 되었습니다. 기존에 나와있는 풀이와는 다를것으로 예상이 되고, 출제 의도와는 다르게 푼거같아서 어떨떨합니다만... ㅎㅅㅎ 풀이를 시작하겠습니다. 로그인 후 힌트파일을 열어본 결과입니다. 역시 함수 포인터로 printit() 의 시작 주소를 담고 있는것을 확인 할 수 있습니다. 하지만 이전의 문제와는 다르게 shell() 가 보이지 않네요. 대신 main()에 level 18의 권한을 주는것이 보이는데요. 풀이를 하기 위해 취약점을 찾아야겠죠? 이제는 바로 보일것같습니다...
-
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 해주는 것으로 보아 버퍼의 시작임을 알 수 있습니다. 또..
-
level13. 풀이System hacking training/Hackerschool F.T.Z 2017. 11. 5. 22:17
해커스쿨 F.T.Z level 13을 풀이해 보았습니다. 로그인 후 힌트를 열어본 화면입니다. attackme에 대한 소스코드인것 같습니다. char 형으로 buf[1024] 만큼 버퍼를 할당해주었고, long 형 i 에 1234567이 들어가 있는것을 알 수 있었습니다. 또한 입력값을 buf에 복사해주는 strcpy 함수가 보이네요. 이 함수는 버퍼오버플로우 공격에 취약합니다. 입력값의 길이를 지정하지 않아, 입력값을 그대로 복사해서 만일 buf 크기 즉, 1024 보다 큰 길이의 입력값이 들어온다면 엉뚱한 것들을 건드려서 프로그래머의 의도와는 다르게 작동할 수 있습니다. 또한 setreuid()를 호출하여 '특권'을 주는것을 볼 수 있습니다. 하지만 이전과는 다르게 if문을 이용하여 i에 0x1234..
-
flee buttonWeb hacking training/wargame.kr 2017. 9. 24. 22:41
wargame.kr 의 세번째 문제 flee button 입니다. 달아나는 버튼(?) start를 눌러 문제풀이를 해보았습니다. 사진에는 마우스가 나오지 않았는데 click me! 라는 녀석을 절대 클릭할 수 없었습니다. 어떻게든 잡으려고 click 매크로를 이용해보려 했지만 출제 의도와 맞지 않을것 같아서 다른 방법을 선택했습니다. 호기심 있으신 분들은 구글에 돌아다니는 click.exe로 잡아보시길,,, 저는 결국 이 flee button 을 잡지 못하고 (닉네임이 에프킬라인데,,) 삽질을 좀 해보았습니다. 어떻게 하면 저걸 잡을까 생각하던 중 매일 하던 소스를 보게 되었습니다. 그냥 소스보기를 했을때는 코드가 난독화 되어있을 뿐더러 위의 소스코드가 없었습니다. 또 .js 파일이 존재하는데 자바스크립..
-
QR CODE PUZZLEWeb hacking training/wargame.kr 2017. 9. 24. 21:34
wargame.kr 의 두번째 문제 QR CODE PUZZLE 입니다. 시작하기전 문제(?) 부분입니다. javascript로 만들어진 퍼즐인듯 합니다. 정말 입력하는란도 없고 딱 퍼즐만 있네요. 마우스로 퍼즐을 맞춰보겠습니다. ... 역시 힘듭니다. 그렇다면 검사 기능을 이용하여 둘러보겠습니다. 원본이 그대로 노출되는것을 확인할 수 있습니다. 그치만 이것을 어떻게 처리하지 라는 생각이 들었고 두시간을 버리게되었습니다. 결론은 간단했습니다. QR코드가 나왔으니 읽어라도 봐야죠 ! 처음엔 제 폰으로 확인을 하려했습니다만 구글에 없는게 없을 듯한 예상은 빗나가지 않았고 .. 이러한 온라인 QR코드 스캐닝 사이트를 발견할 수 있었습니다. http://www.onlinebarcodereader.com/ 이 사이..