본문 바로가기
정보보안

드림핵 BypassIF 기록

by puy0 2026. 6. 25.

이 힌트면 해답 없이 직접 풀 수 있습니다

힌트 : 웹에는 입력할 수 없는 파라미터가 /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찾게 하기

 

댓글