챗봇과 대화하며 프롬프트 인젝션·탈옥·RAG 조작·에이전트 악용으로 숨은 플래그(FLAG)를 끌어내는 실습입니다. 코드를 고치는 것이 아니라, 대화로 취약점을 유도합니다. 먼저 시작하기(로그인)를 마쳤다고 가정합니다.
FLAG{…} 확보 → 해결!로그인하면 챌린지 목록(포털)이 뜹니다. 각 카드에는 제목과 함께 OWASP LLM 분류(예: LLM01),
유형(prompt·rag·agent·data 등), 난이도(★), 점수가 표시됩니다. 해결한 챌린지는 완료 배지가 붙습니다.
처음이라면 난이도 ★ 1~2, 유형 prompt 인 숨은 지시 추출부터 시작하는 것을 권장합니다. 배경 이론이 필요하면
상단 강의 슬라이드 에서 해당 세션 PDF를 열어 보세요.
화면은 왼쪽(설명) 과 오른쪽(챗) 으로 나뉩니다. 공략의 핵심 단서는 대부분 왼쪽 설명 안에 있습니다.
| 항목 | 의미 |
|---|---|
| 상황 | 봇의 역할·시나리오(예: “ACME 쇼핑몰 고객지원 챗봇”). 어떤 인격과 대화하는지 파악. |
| 취약점 | 가장 중요. 봇이 어떤 프레이밍에 약한지 알려줍니다(예: “‘원문 그대로 반복’·‘이전 지시 무시’엔 순순히 따른다”). 여기가 곧 공략법입니다. |
| 목표 | 무엇을 끌어내야 해결인지(예: 시스템 프롬프트 속 FLAG). |
| 실무 위험 | 실제 서비스에서 왜 위험한지 — 학습 맥락. |
| 힌트 보기 | 막힐 때 펼치는 단계별 힌트(복사 가능한 예시 문구 포함). |
| 플래그 제출 | 응답에서 얻은 FLAG{…} 를 붙여넣어 제출. |
봇은 진짜 챗봇처럼 반응합니다. 인사하거나 기능을 물으면 페르소나로 답하고, 공격이 가까워지면 어떤 프레이밍에 약한지 힌트(넛지)로 흘립니다.
아래는 숨은 지시 추출 챌린지를 3단계로 푸는 실제 대화입니다.
FLAG{…} 노출 → 상단 “챌린지 해결!” 배너.성공하면 자동으로 해결 처리되고 점수가 올라갑니다(플래그를 따로 제출하지 않아도 됩니다).
힌트 보기 를 펼치면 단계별 힌트가 나옵니다(막힐 때만 권장). 각 힌트에는 그대로 복사해 써볼 수 있는 예시 공격 문구가 포함돼 있어요 — 먼저 스스로 시도하고, 막히면 참고하세요.
FLAG{...} 전체를 복사합니다.일부 RAG 챌린지에는 노트(문서) 추가 기능이 있습니다. 위키에 문서를 넣으면 봇이 그 문서를 검색해 신뢰합니다 — 이를 이용한 간접 프롬프트 인젝션입니다.
FLAG{…} 를 노출 → 해결.에이전트 챌린지에서는 봇이 tool: read_file(...) 처럼 도구를 호출하는 모습이 대화에 표시됩니다 — 도구가 권한 밖 파일에 접근하도록 유도하는 것이 목표입니다.
| 유형 | 노리는 것 · 대표 접근 |
|---|---|
| 프롬프트(prompt) | 숨은 지시 추출·가드 우회(탈옥)·다중턴·인코딩 필터 우회 — 프레이밍을 바꿔 요청. |
| RAG | 문서 포이즈닝(add_note)·검색 권한 우회 — 신뢰되는 문서에 지시를 심는다. |
| 에이전트(agent) | 도구 악용·과도한 대리권·플러그인 공급망 — 도구가 권한 밖 동작을 하게 만든다. |
| 데이터·출력 | 민감정보(PII) 유출·부적절한 출력 처리 — 사칭·권한 주장, 원본 HTML 요청 등. |
| 리뷰(워크샵) | 위협 모델링·방어 체크리스트 — 대화가 아니라 제출형. |
fl4g), 사칭·권한 주장 등.