Why Always Me!

1. 워게임 문제 제작 후기 본문

War Game

1. 워게임 문제 제작 후기

Racil U 2025. 6. 11. 19:45

1. 계기

평소 취약점 진단을 하면서 경험했던 케이스들을 공유하기 위해 문제를 만들기로 했습니다.

팀 내에 교육 자료로도 사용할 수 있고, 나중에 PoC가 필요할 때 활용도 가능하지 않을까 싶기도 해서요.

 

기존 CTF 계열의 문제는 특정 웹 서비스라든지, VM을 통해서 전달이 되었는데 티오리라는 회사가 운영하는 드림핵에는 문제를 배포할 수 있는 기능을 제공해서 해당 플랫폼을 이용하기로 했습니다.

 

2. 컨셉

문제 컨셉은 클라이언트 쪽 필터링을 우회할 수 있는가?로 잡았습니다.

평소 진단을 하다보면 < 이런 특수 문자를 서버로 보내게되면, 클라이언트에서 js를 통해 &lt; 로 변환하는 경우를 많이 볼 수 있습니다.

이 경우, 서버에서 클라이언트 필터링을 신뢰해서 문제가 발생하는 경우가 많습니다.

공격자는 프록시 툴로 &lt;를 <로 바꿔주면 되는 일이니까요.

 

그래서 암호화 로직을 추가했습니다.

프록시에서는 암호분이 보일 뿐, 직접적인 수정은 할 수 없습니다.

 

공격자는 클라이언트 측 필터링을 개발자 도구로 분석하여 우회해야 합니다.

js 분석과 개발자 도구 활용이 익숙한 분들은 쉽게 문제를 해결할 수 있을 거고 그렇지 않으면 조금 먼 길을 돌아가야할 수도 있습니다.

 

3. 후기

문제를 만든다는 게 꽤 어려운 일이라는 걸 알았습니다.

제가 원하는 대로 공격 유형을 유도하는 게 쉽지 않더라구요.

하지만 다음 번엔 좀 더 좋은 문제를 만들 수 있을 거 같습니다.

 

https://dreamhack.io/wargame/challenges/1959

 

Trust the Client Filter

보안팀의 김보안 씨는 최근 웹 애플리케이션 소스코드 진단을 받게 되었습니다. 진단자는 말했습니다. “이거 SQL Injection 가능성 높습니다. 여기, 여기, 그리고 여기도요.” 지적사항은 무려 12건

dreamhack.io

 

혹시 여유가 있으신 분들은 문제 한 번 풀어보시는 거 어떨까요! 잘 안 팔려서 블로그에 홍보합니다..