이 힌트면 해답 없이 직접 풀 수 있습니다
힌트 : 웹에는 입력할 수 없는 파라미터가 /flag 메서드에 명시 되어있다.
풀이 정리
서버측에는 cmd_input기능이 구현 되어있지만, 웹에는 인풋 필드가 구현 되어있지 않고
해당 파라미터를 사용해 flag를 위한 key를 찾는 것이 포인트 이다

해당 엔드포인드 메서드 코드 (파이썬 코드를 몰라서 이 메서드를 뭐라고 하는지 모르겠다)
에서 얻을 수 있는 정보는 :
POST만 받기 때문에 VM주소/flag?key=asd&cmd_input을 사용할 수 없어 curl을 사용했다
타임아웃이 걸려 반환한 키로 플래그를 얻긍수 있다
등등

추가로 커멘드의 flag, cat이 필터링 된다 정도.
curl http://host3.dreamhack.games:20922/flag -d "key=admin&cmd_input=ls"

커멘드 결과를 정상 반환 할 수 있음을 검증 할 수 있다
하지만 바로 flag를 조회 할 수 없었다
flag 필터링하기 위해 *를 사용 해도 cat이 필터링 되어있기에 서버코드의 타임아웃을 사용했다
curl http://host3.dreamhack.games:20922/flag -d "key=admin&cmd_input=sleep 10"

바로 조회를 막아놓고 타임아웃걸면 얻을 수 있는 키로 flag를 얻는 문제였다

정리를 해보면
post만 사용가능, 거기서
기능만 구현 되어있는 cmd_input 파라미터 사용하기
명령어 필터링 막아놓고 key로 flag찾게 하기
'정보보안' 카테고리의 다른 글
| 드림핵 command-injection-1 44 (0) | 2026.07.07 |
|---|---|
| 드림핵 Image Uploader 2624 기록 (0) | 2026.07.02 |
| 메일서비스 개선, 검증 (0) | 2026.05.28 |
| STMP 인증 관련 점검 (0) | 2026.05.27 |
| 시스템 취약점 분석 전후 개념 비교를 위한 기록 (0) | 2026.05.06 |
댓글