웹 해킹은 웹 사이트의 취약점을 공격하는 기술적 위협을 의미합니다. 일반적으로 CTF에서는 주어진 웹 사이트에 접속하여 그 사이트에서의 서버와 클라이언트 사이에 발생하는 취약점을 공격하는 것을 목표로 합니다. 웹 문제를 풀기 위한 사이트는 문제 설명에 나와 있으며, 해당 사이트로 접속 시 문제를 풀 수 있습니다. 특정 방법을 통해 문제 해결을 시도하였지만 flag가 나오지 않고, 다른 문자열이나 오류가 나온다면 틀린 것 입니다!
웹 해킹에서는 여러가지 도구를 활용하여 플래그를 얻어냅니다. 대표적으로 브루트 포싱(무차별 대입 공격)에 사용하는 툴인 Burp Suite등이 있습니다.
시스템 해킹이란, 만들어진 시스템에서 관리자 권한을 탈취하여 서비스를 장악하는 것을 뜻합니다. 이때 시스템의 ‘취약점’을 찾아 그것을 집중 공략하는 것이 목표입니다. 보통 CTF 대회에서는 서비스에서 쉘(명령어 프롬포트)을 악의적으로 실행시키게 만들거나, 중요한 데이터(플래그)를 악의적으로 출력하게 만드는 등 다양한 기술이 응용될 수 있습니다. 다음은 도구 목록입니다.
pip install pwntools
를 통해 설치 가능)리버싱 (리버스 엔지니어링)이란, 이미 만들어진 프로그램 (예를 들어 .exe 파일)의 데이터를 분석하여 원하는 데이터를 뽑아내는 것을 의미합니다. CTF 대회에서는 보통 플래그가 각종 방법으로 암호화되어, 일반적인 방법으로 찾아내는 것이 어렵습니다. 이 암호화 알고리즘을 분석하여 올바른 플래그 (데이터)를 도출하는 것이 참여자들의 목표입니다.
이때 여러 가지 도구를 사용할 수 있습니다. 여기 유용한 도구들의 집합을 제공해 드리겠습니다.
암호학은 데이터 전송을 ‘안전하게’ 하기 위해 만들어진 개념입니다. 서로 교환하려는 데이터를 중간에 해커가 가로채었을 때 그것이 안전하게 암호화되어 있다면 피해를 최소화할 수 있을 것입니다. CTF 대회에서는 보통 ‘서로 교환하려는 데이터를 가로채려는 해커’가 참여자입니다. 참여자는 안전하게 암호화되어 있지 않은 데이터를 복호화하여 데이터 (플래그)를 얻어내는 것이 목표입니다. 다음은 도구 목록입니다.