사이버스타터즈 CTF

May 01 2023
2023년 4월 28일부터 4월 30일까지 저는 Diary of Hackers에서 주최하는 CyberStarters CTF 예선 대회에 참가했습니다. 이 행사는 사이버 보안 분야에 대한 지식을 넓힐 수 있는 좋은 기회를 제공했습니다.

2023년 4월 28일부터 4월 30일까지 저는 Diary of Hackers에서 주최하는 CyberStarters CTF 예선 대회에 참가했습니다. 이 행사는 사이버 보안 분야에 대한 지식을 넓힐 수 있는 좋은 기회를 제공했습니다.

사이버 보안 커뮤니티의 초보 회원을 대상으로 하는 최대 규모의 컨퍼런스인 Cyber ​​Starters Conference는 압도적인 사이버 보안 분야를 탐색하려는 사람들에게 지침과 통찰력을 제공하는 것을 목표로 합니다.

이 회의는 학생, 열광자, 경력 변경자, 사이버 보안 관리자 및 이 산업에 관심이 있는 모든 사람에게 명확한 방향을 제시합니다. 사이버 보안은 빠르게 발전하는 분야이므로 성장과 성공을 위한 많은 기회를 제공합니다.

이 글에서는 이벤트 기간 동안 몇 가지 문제를 해결한 경험을 공유할 것입니다.

위생 검사

불화

불화

제공된 링크를 따라간 후 Discord 서버로 이동하여 깃발을 검색하기 시작했습니다. 사용 가능한 채널을 탐색하는 동안 환영 채널에서 Mayana가 남긴 메시지를 발견했습니다. 메시지에는 RG9IQ1RGe3RyeV90b19iZV9oYWNrdGl2ZV9vbl9kaXNjb3JkX2hlaGVoZWhlaGVoZX0K라는 인코딩된 텍스트 문자열이 포함되어 있습니다. 나는 지체 없이 이 문자열을 해독하고 그 의미를 풀기 시작했습니다.

불일치 플래그

위의 디코딩 명령을 사용하여 인코딩된 텍스트를 성공적으로 해독하고 그 안에 숨겨진 플래그를 발견했습니다.

dohctf

Lytes는 플래그가 실제로 챌린지 이름 자체에 숨겨져 있기 때문에 의도적으로 우리의 두뇌를 놀림으로써 이 챌린지를 더 어렵게 만들기로 선택했을 수 있습니다. 그는 도전에 복잡성을 추가하여 참가자들이 깃발을 발견하기 어렵게 만들기로 결정했습니다.

트위터

트위터 플래그

이 도전은 단지 예 또는 아니오입니다.

스테그

좋아요

좋아요

챌린지는 스테가노그래피 범주에 속했고 제공된 파일을 다운로드했을 때 “Iceeeedddd”라는 콘텐츠가 포함된 텍스트 파일임을 발견했습니다. 언뜻 보기에 이것은 인코딩된 문자열로 보이지 않았습니다. 더 자세히 조사하기 위해 steghide, stegseek 및 stegsnow와 같은 일부 스테가노그래피 도구를 사용하기로 결정했습니다. 다행히 stegsnow를 사용하여 숨겨진 정보를 성공적으로 추출할 수 있었습니다. 도구의 출력은 나에게 플래그를 제공했습니다. 아래 출력 확인

OK 플래그

편물

아무도 통과하지 못한다

이 특정 챌린지는 웹 챌린지 범주에 속하며 초기 단계는 제공된 링크를 따라가는 것입니다. 여기에서 아래를 확인하세요.

웹 페이지

챌린지에 접속하면 "당신은 누구입니까?"라는 프롬프트 메시지가 나타납니다. 이 메시지는 인증 또는 권한 부여 문제를 나타낼 수 있습니다. 챌린지를 진행하려면 유효한 ID 또는 자격 증명이 필요할 수 있기 때문입니다. URL에 JSON 웹 토큰을 나타내는 약어 "JWT"가 포함되어 있다는 점도 주목할 가치가 있습니다. 이는 챌린지가 인증 목적으로 JWT를 사용하는 것과 관련이 있거나 JWT 자체에 해결해야 하는 문제가 있을 수 있음을 시사할 수 있습니다.

개발자 도구

도전을 계속하기 위해 F12를 눌러 개발자 콘솔에 액세스했습니다. 조사 결과 쿠키에 JWT 토큰이 포함되어 있음을 발견했습니다. 더 진행하기 위해서는 이 토큰을 해독하고 관련 데이터를 추출하는 것이 중요하다는 것을 이해했습니다.

JWT 토큰은 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 헤더에는 토큰 유형 및 서명에 사용된 알고리즘과 같은 토큰에 대한 정보가 포함되어 있습니다. 페이로드에는 사용자 정보 또는 인증 데이터와 같이 전송되는 실제 데이터가 포함됩니다. 마지막으로 서명은 토큰의 진위를 확인하고 전송 중에 변경되지 않았는지 확인하는 데 사용됩니다.

JWT 토큰을 크래킹하는 데 사용할 수 있는 여러 온라인 리소스와 도구가 있습니다. 여기에서 확인

jwt 손님

앞에서 언급했듯이 JWT 토큰은 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 플래그에 대한 액세스 권한을 얻으려면 토큰의 페이로드 섹션을 수정하여 역할을 "게스트"에서 "관리자"로 변경해야 합니다. 이렇게 하려면 페이로드를 수정하는 데 필요한 정보를 얻기 위해 토큰을 크래킹해야 합니다. 페이로드가 수정되면 업데이트된 토큰을 사용하여 플래그에 대한 액세스 권한을 얻을 수 있습니다.

관리자 jwt

역할을 "관리자"로 변경하도록 JWT 토큰 페이로드를 수정한 후 다음 단계는 업데이트된 토큰을 복사하여 브라우저 개발자 콘솔의 해당 필드에 붙여넣는 것입니다. 이 경우 업데이트된 토큰을 개발자 콘솔의 "쿠키" 섹션에 붙여넣은 다음 페이지를 다시 로드하여 플래그에 대한 액세스 권한이 부여되었는지 확인합니다. 수정이 성공했다면 이제 플래그를 보고 도전을 완료할 수 있습니다.

잘못된 토큰

토큰이 유효하지 않다는 오류 메시지가 표시됩니다. 이 경우 서버가 토큰 서명을 확인하고 수정된 토큰을 거부할 수 있습니다. 이 문제에 대한 한 가지 가능한 해결책은 헤더 섹션에서 토큰 서명에 사용되는 알고리즘을 수정하는 것입니다. 알고리즘을 "없음"으로 변경하면 여전히 유효하지만 서명이 필요하지 않은 토큰을 만들 수 있습니다. 이를 통해 서버가 토큰을 거부하지 않고 페이로드 섹션을 수정할 수 있습니다.

아래 확인을 위해 작은 bash 스크립트를 작성합니다.

세게 때리다

JWT 토큰을 전달하면 HS256 요구 사항을 제거하고 없음으로 설정한 다음 사용자를 관리자로 지정합니다. 쿠키 병에 붙여넣고 새로 고칩니다.

웹 플래그

OSINT

불량 요원

불량 요원

OSINT 관점에서 휴대폰 번호를 제공받고 전화번호 소유자에 대한 자세한 정보를 수집하기 위해 여러 가지 방법을 시도했습니다. 이러한 방법에는 내 연락처 목록에 번호 추가, 연락처 검색 기능을 통해 소셜 미디어 플랫폼에서 검색, Truecaller 사용 및 Telegram 시도가 포함됩니다. 하지만 송금을 시도할 때만 실명을 밝힐 수 있었습니다.

옮기다

linkedIn에서 이름을 검색했습니다.

링크드인

base64 코드를 디코딩할 수 있습니다.

OSINT 플래그

암호화폐

질병

질병
깃발.png

PNG 파일에서 exiftool, strings, Zteg 등 다양한 도구를 사용해 본 결과 유용한 것을 찾을 수 없었습니다. 하지만 결국 그 이미지가 해군 신호 코드를 사용하여 인코딩되었음을 깨달았습니다. 메시지를 해독하기 위해 dcode.fr 웹 사이트를 사용했습니다.

깃발

CyberStarters CTF 예선 대회에 참가하는 것은 도전적이면서도 보람 있는 경험이었습니다. 스테가노그래피, 웹 익스플로잇, 암호화 등 다양한 카테고리에서 실력을 테스트할 수 있었습니다.

그 과정에서 몇 가지 장애물에 부딪혔지만 여러 문제를 성공적으로 해결하고 그 과정에서 새로운 기술을 배울 수 있었습니다.

시간을 내어 이 글을 읽어주신 모든 분들께 찬사를 드리며 대회 기간 동안 직면한 문제에 대한 통찰력을 제공할 수 있기를 바랍니다.

사이버 보안 분야는 지속적으로 발전하고 있으며 CyberStarters 컨퍼런스와 같은 이벤트는 개인이 이 흥미진진한 산업을 탐구할 수 있는 좋은 기회를 제공합니다. 향후 CTF에 참여하고 사이버 보안 분야에 대한 지식을 더욱 넓힐 수 있기를 기대합니다.

제 CTF 글을 재미있게 읽으셨거나 질문이 있으시면 언제든지 Twitter 에서 저에게 연락해 주세요 . 저는 항상 열광적인 동료들과 소통하고 사이버 보안에 관한 모든 것을 논의하는 것을 기쁘게 생각합니다!