이번 아티클에서는 해킹을 합법적으로 실습할 수 있는 문제를 풀어볼 예정입니다.
허용되지 않은 대상을 해킹할 경우 형사처분의 대상이 되니,
해킹 실습은 반드시 허용된 범위 내에서 진행해야 합니다.
AI만 이용해서 해킹할 수 있을까? | ChatGPT로 해킹 문제 풀기
요즘은 AI가 못 하는 게 없죠. 글도 쓰고, 코딩도 하고, 심지어 AI만을 이용한 광고, 영화도 있습니다.
그렇다면 AI 만으로 해킹도 가능할까요?
“해킹은 천재들만 하는 거 아니야?”, “코딩도 잘 모르는데 어떻게 해킹을 해?” 많은 분들이 해킹을 어렵게 생각하지만, 기술이 발달한 지금은 AI를 학습 보조로 활용해 보다 쉽게 입문할 수 있어요.
오늘은 해킹 학습 플랫폼 드림핵의 해킹 실습 문제를 ChatGPT만 이용해서 풀어보며, 함께 초보 화이트햇 해커가 되어보는 체험을 해볼게요. 문제 풀 때 사용하는 프롬프트도 공유하니 꼭 끝까지 확인해 주세요!
해킹은 불법 아닌가요?
해킹(Hacking)은 컴퓨터 시스템, 네트워크, 소프트웨어 등의 허점(취약점)을 분석하고 파고들어, 원래 의도와 다른 동작을 하도록 만드는 모든 행위를 말해요. 영화처럼 복잡한 기술만 필요한 건 아니고, 때로는 단순한 설정 실수나 노출된 비밀번호 하나의 사소한 틈으로 침투가 가능한 경우도 있어요.
중요한 건 목적과 환경이에요. 버그바운티처럼 실제 서비스에 합법적으로 해킹할 수 있는 프로그램도 있고, 화이트햇 해커로 성장하기 위해 합법적이고 안전하게 해킹을 배울 수 있어요. 반대로 허가 없이 실제 서비스에 손대는 건 범죄가 될 수 있으니 유의해야 합니다.
해킹 입문하는 방법이 궁금하다면?
해킹 입문 가이드 게시글을 확인해 보세요!
오늘 AI를 이용해 풀어볼 문제는 허가된 학습 환경인 드림핵에서 공식으로 제공하는 학습용 문제예요. ChatGPT를 사용해 어떻게 취약점을 찾는지, 초보자도 따라 할 수 있게 단계별로 실습해 볼게요.
ChatGPT를 이용한 해킹 실습
⚠️
Step 0. 실습 준비하기
우선, 해킹 실습을 위해 준비물이 있어야 해요.
해킹 연습 문제
ChatGPT(무료 버전도 충분)
호기심
일반적으로 해킹 실습 문제는 Wargame(워게임)이라고 부르는데요. 의도적으로 취약점이 있는 프로그램에서 취약한 부분을 찾아 Flag라는 정답을 제출하며 해킹을 실습할 수 있어요.
오늘 함께 실습할 문제는 드림핵의 simple_sqli_chatgpt입니다.
로그인만 하면 무료로 풀어볼 수 있으니, 게시글을 보면서 같이 풀어보는 걸 추천드려요!
Step 1. 문제 관찰하기
문제 태그가 Web으로 되어있으니 웹 취약점을 이용한 문제인 걸 알 수 있어요. 설명을 보면 SQL Injection을 이용한다고 나와있죠. 아직 SQL Injection이 어떤 취약점인지 모르지만, 일단 서버 생성하기를 눌러서 문제를 열어볼게요.
원래 워게임은 어떤 취약점을 이용하는지 모르는 상태로 그것까지 유추하며 해결해야 하지만, 오늘은 그 과정을 ChatGPT가 알려줄 거예요.
브라우저에 주어진 url을 입력해 문제 사이트에 들어가면 딱 보기에도 허전한 사이트가 나오는데요. 다른 정보 없이 Login 페이지와 userlevel 입력창이 있어요. 이 화면만 보면 웹사이트가 어떤 동작을 하는지 알 수 없기 때문에, 이를 확인하기 위해 소스 코드를 분석해야 해요.
[문제 파일 받기]로 파일을 받아서 압축을 풀면 app.py라는 파일이 있어요. 일단 ChatGPT에게 주고 설명을 부탁할게요.
Step 2. ChatGPT와 코드 분석하기
프롬프트 예시 1: 파일 분석하기
[전체 파일 첨부]
이 파일의 코드를 분석해서 어떤 행동을 하는 파일인지 알려줘.
코드를 모르는 사람도 이해할 수 있게 설명해.파일 첨부가 어렵다면, 소스 코드를 전체 복사해서 붙여 넣어도 돼요. ChatGPT가 어떤 파일인지, 상세 동작까지 설명해 줍니다. 무슨 내용인지 이해하기 어려워도 괜찮아요.
답변을 요약하면 app.py는 Flask 웹 애플리케이션으로, 사용자가 userlevel을 입력하면 SQLite에서 데이터를 조회하는 로그인 시스템이에요.
위 사진의 5. 공격 관점에서 요약을 보면 어떤 취약점인지, 어떻게 하면 공격할 수 있는지 설명하고 있어요.
내용을 요약하면, app.py가 사용자의 입력을 검증하지 않고 바로 SQL 쿼리에 직접 삽입된다고 해요. 이게 바로 SQL Injection이에요.
그 아래에 문제의 정답인 플래그(Flag)를 얻는 방법도 설명하고 있어요. userlevel에 공격 코드를 넣으면 Flag가 노출된다고 하는데요. 바로 입력해서 FLAG를 얻을 수 있지만, SQL Injection의 원리가 궁금하다면 ChatGPT에게 한 번 더 물어봐도 좋아요.
프롬프트 예시 2: 원리 이해하기
이 공격 코드가 왜 작동하는지 초보자도 이해할 수 있게 설명해 줘.
[앞서 설명한 공격 코드]이렇게 물어보면 각 코드의 의미가 무엇인지 하나하나 풀어서 설명하는 것을 볼 수 있어요. 마찬가지로 ChatGPT의 설명 중 이해가 안 되는 부분이 있다면, 다시 물어보면서 구체적인 원리를 이해할 수 있습니다.
Step 3. 공격 실행하기
원리를 이해했으니 직접 시도해 볼 차례예요! 웹사이트의 Login 창으로 이동한 후, userlevel을 입력하는 곳에 ChatGPT가 작성해 준 코드(쿼리)를 입력하면 뭔가 출력되는 모습을 볼 수 있어요.
플래그는 보통 특정 형식이 있는데요. 드림핵은 DH{ flag 값 } 형식이니 저 값을 복사해서 제출해 보면,,
문제를 해결했다는 창을 볼 수 있어요! 이렇게 AI를 이용해 해킹 문제를 풀었습니다. 생각보다 간단하죠?
실습으로 배운 것
ChatGPT가 하라는 대로 입력하고, 제출했지만 사실 이 과정이 사람이 해킹하는 과정과 동일해요.
취약점 분석 – 코드에서 어디가 위험한지, 취약한지 식별
공격 설계 – 어떻게 입력해야 공격이 성공할지 설계
원리 학습 – SQL Injection 작동 원리
AI 활용 – ChatGPT를 활용하는 방법
해킹의 본질은 탐색과 이해입니다. ChatGPT가 알려준 건 단순히 정답이 아니라, 어디가 이상한지, 어떻게 확인할지예요. 이걸 이해하는 것이 해킹의 시작입니다. 코드를 완벽히 이해하지 못해도, 코드의 흐름을 읽고 취약점으로 의심되는 지점을 추리하는 감각을 기른다면 누구나 해킹을 시작할 수 있습니다.
AI를 이용해 해킹 공부하는 법
AI를 활용하면 해킹도 코딩도 수월하게 공부할 수 있는데요. 더 효율적으로 활용하기 위한 방법을 공유할게요.
1:1 맞춤 설명
전통적인 방법으로는 두꺼운 해킹 책 혹은 인터넷 강의를 구매해서 혼자 읽다가, 이해 안 되면 구글에 검색하고, 다른 자료들을 확인하는 흐름으로 공부할 수 있죠.
AI를 활용하면 원하는 부분을 원하는 만큼, 내 수준에 맞는 설명으로 볼 수 있어요. 이해가 안 되면 될 때까지 질문하면서 나만의 맞춤 학습을 진행할 수 있습니다.문제 접근 방법 학습
해킹을 비롯해 모든 공부는 내가 어떤 부분을 모르는지를 알아야 발전하기 수월한데요. AI와 대화하면 자연스럽게 어떤 부분을 분석해야 하는지, 어떤 부분을 보완해야 하는지 배울 수 있습니다. 단순히 답을 알려주는 게 아니라 어떻게 생각해야 하는지를 배울 수 있어요. 해킹 문제를 풀 때도, 초반에는 다른 사람들 풀이를 보면서 어떻게 접근할지 감을 익힐 수 있으니 내가 모르는 부분이 어디인지 확인하고, 더 보충하는 데에 도움이 돼요.단계적 학습
AI한테 전체 풀이를 요청해도 알려주고, 힌트만 요청해도 알려주고, 내가 직접 풀어본 다음 검증만 요청해도 알려주죠. 모든 과정에서 AI에게 정답을 요구하지 말고, 어디를 봐야 하는지, 내 분석이 맞는지 등 단계별로 학습하는데 활용하면 더 좋습니다.
AI를 이용할 때 주의할 점
하지만 AI는 언제나 완벽하지 않아요. 실제 환경에서 틀린 답을 제시하거나 잘못된 가정을 할 때도 있습니다. AI를 이용해 공부할 때 반드시 유의해야 해요.
AI도 틀릴 수 있어요.
AI의 답변은 가능성이 높은 가설이지 확증이 아니에요. 특히 최신 보안 이슈나 특정 환경에서는 틀린 답을 줄 수도 있습니다. 공식 문서 또는 드림핵 강의와 대조해 보거나, 이 방법이 왜 작동하는지 원리를 확인하면서 반드시 직접 검증해야 합니다.지나친 의존을 유의하세요.
AI에게 의존하며 기본 지식을 익히지 않거나 제대로 이해하지 못하면 기본기가 부실할 수밖에 없어요. AI의 도움을 받아서 재미를 느끼는 거나 감을 잡는 것도 좋지만, 기본 개념 강의를 함께 수강하고 직접 문제를 풀어보는 시도가 중요합니다. AI는 보조로만 활용하는 것을 추천해요.AI는 법적, 윤리적 책임을 지지 않아요.
학습할 수 있는 사이트나 버그바운티의 허가 범위 외, 불법인 환경에서는 절대 해킹을 시도하지 않는 것이 좋습니다. 특히 실제 취약점 중 개인 정보나 민감한 로그가 나오면 즉시 중단하고, 해당 플랫폼의 신고 절차를 따르는 것이 좋아요.
이 외에도 일부 대회에서는 ChatGPT나 Gemini 같은 LLM 사용을 금지할 수 있어요. 규칙 위반 시 실격 징계를 받을 수 있으니 조심해야 합니다!
해킹, 나도 해볼까?
오늘 ChatGPT와 함께 실제 해킹 문제를 해결했는데요. 코딩을 잘 몰라도, 해킹이 처음이어도 AI의 도움을 받아 충분히 시작할 수 있다는 걸 경험했어요. SQL Injection을 이해하고, 이 취약점을 이용해 시스템을 공격했죠.
해킹은 SQL Injection 외에도 XSS, CSRF 같은 다양한 웹 취약점이 있고, 시스템, 리버싱 등 더욱 다양한 분야가 있어요. 오늘은 그 일부만 경험했어요.
드림핵에는 초보자도 쉽게 풀 수 있는 다양한 해킹 문제가 준비되어 있어요.
함께 풀어본 문제가 재미있었다면, 아래 문제도 풀어보는 것을 추천드려요!
ChagGPT를 이용해 풀어볼 수 있는 다른 문제: command-injection-chatgpt
이번 게시글과 유사하게 LLM만을 이용해서 충분히 풀 수 있으니 도전해 보세요.혼자 도전해 볼 만한 문제: baby-sqlite / simple_sqli
오늘 배운 SQL Injection을 응용해 풀어볼 수 있어요.
해킹 문제뿐만 아니라 내가 푸는 문제가 어떤 내용인지 체계적으로 이해하고 싶다면, 해킹 강의를 수강해 보세요. 해킹을 전혀 모르는 사람도 시작할 수 있도록 되어있으니 차근차근 따라 하며 화이트햇 해커로 한 걸음 다가갈 수 있어요.
AI와 함께한 첫 해킹, 어떠셨나요? AI를 활용하면 생각보다 쉽게 시작할 수 있죠.
오늘 경험이 해킹 세계로 가는 첫걸음이 되기를 바랍니다!