분류 전체보기
-
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 16. 풀이System hacking training/Hackerschool F.T.Z 2017. 12. 3. 17:39
해커스쿨 F.T.Z level 16 풀이를 해보았습니다. 로그인 후 힌트 파일을 확인하면.. 이전 문제들과는 다르게 main() 외에 2개의 함수가 더 있는것을 확인할 수 있습니다. void shell()에서 level 17의 권한을 걸고, system()를 이용하여 쉘을 띄어주는군요ㅎ 또 main()에서 void (*call)() = printit; 이 부분을 중요하게 볼 필요가 있는데요. c언어를 공부하신 분들은 아시겠지만 이는 함수 포인터라고 하는 녀석입니다. 말 그대로 함수를 담는 변수라고 할 수 있는데요. 아시다시피 포인터 변수는 주소값을 저장하는 변수입니다. 배열과 마찬가지로 printit 과 같이 함수의 이름을 넣어줌으로서 시작 주소를 call 이라는 함수 포인터에 넣어줍니다. 따라서 쉘을 ..
-
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 해주는 것으로 보아 버퍼의 시작임을 알 수 있습니다. 또..
-
[2017] HDCONfkillrra ?/conference 2017. 11. 26. 18:14
2017-11-13 HDCON에 대한 후기를 작성합니다. 처음 컨퍼런스는 친구를 따라 갔던 기억이 있는데요. 컨퍼런스에 다녀오면 동기부여만 왕창되고 남는 지식은 조금 한정적이더라구요. 그래서 이렇게 후기를 작성하게 되었습니다. HDCON은 CTF를 참여함으로서 컨퍼런스가 열린다는 사실을 알게되었는데요. 이런 구성으로 진행이 되었습니다. 제가 처음 들었던 내용은 2017 codegate 문제풀이에 대한 내용이었습니다. 블랙펄 시큐리티의 심준보 이사님께서 speaker로 오셔서 발표를 진행했는데.. 말씀중 가장 인상 깊었던 내용은 요즘 해킹방어 대회는 자동화된 툴을 사용하지 않고는 순위권에 들 수 없다는 사실이었습니다. 저 또한 CTF에 관심이 많아 매년 많은 CTF에 참가를 하는데요. 매번 손으로 풀고 있..
-
level 14. 풀이System hacking training/Hackerschool F.T.Z 2017. 11. 12. 18:29
엄청난 뻘짓끝에 F.T.Z level 14도 풀이를 했습니다. level14 풀이를 해보았습니다. 로그인 후 level15에 실행 권한이 주어진 파일을 찾은 모습입니다. 간단히 ls -al 명령어로 찾을 수 있습니다. 이번에도 변태같은 attackme가 공격을 바라며 기다리고 있네요 ㅎ 힌트 파일을 열어 힌트를 확인 해 보니.. char buf[20]; 으로 20 byte 크기의 배열이 존재합니다. 하지만 크기에 맞지 않게 fgets() 함수에서는 45 byte 를 입력받고 있는 모습입니다. 따라서 버퍼오버플로우 취약점이 존재하는 것을 확인 할 수 있습니다. 또한 if 문의 조건으로 check 이라는 int 형 변수에 0xdeadbeef 라는 문자가 존재한다면 쉘을 실행 시켜 주네요. ㅎ 저 if 문의 ..
-
Team H4C CTFfkillrra ?/CTF 2017. 11. 12. 12:03
Team H4C에서 주최한 CTF에 출전해 보았습니다. 제 1회 TeamH4C Capture The Flag1. 개최 일시 : 2017년 10월 27일 금요일 21:00PM ~ 10월 28일 토요일 21:30PM2. 등록 기간 : 2017년 10월 13일 금요일 20:00PM ~ 10월 21일 토요일3. 참가 자격 : 제한없음4. 참여 형태 : 개인전5. 보상 : 1위 : 제 4회 TeamH4C 해킹캠프 티켓 , 상장 2위 : 제 4회 TeamH4C 해킹캠프 할인권 , 상장3위 ~ 15위 : 상장 좋은 성적은 아니지만 misc 문제 2개를 풀어 41위로 대회를 마감했습니다.매번 대회에 출전하여 문제를 풀지 못하고 마무리한 기억밖에 없는데 이번 대회는 50위 내로 집입한 점에서 저에게는 의미있는 대회였습니..