반응형
요즘 CTF 나 워게임에서 감사하게도 도커파일까지 주는 경우가 많다.
기왕받은 도커파일을 잘 활용하여 취약점 분석에 도움이 되기 위해 값을 직접 찍어본다던지, 중간중간 로그들을 출력하여 payload에 대한 값을 찍어보며 문제를 푸는경우가 많아졌다.
주어진 소스코드가 node.js 파일인 경우 console.log 로 간단하게 값을 출력하고
PHP인 경우 echo로 간단하게 변수값을 확인해 볼 수 있다.
그런데 python의 flask / fast api / Django 등 으로 빌드된 서버의 경우 print 로 값을 확인해 보려 하지만 뜻대로 도커에서 출력되지 않아 굉장히 답답했던 경험이 있다.
flush = True
간단한 해결방법은 print의 flush옵션을 true로 설정해 주는 것이다.
print(f"log: {value1}, {value2}", flush=True)
flush값을 True로 설정하여 강제로 flush해 주는 것이다.
python -u 옵션
도커파일 자체를 수정하여 파이썬을 실행할때 -u 옵션을 주어 실행하는 방법도 있다.
변경전
CMD ["python", "app.py"]
변경후
CMD ["python", "-u", "app.py"]
파이썬의 -u 옵션은 표준 출력 및 표준 오류 스트림을 버퍼링 없이 다루기 위해 사용한다.
반응형
'ETC' 카테고리의 다른 글
[Burp Suite] Unsupported or unrecognized SSL message 오류 해결 (3) | 2023.11.14 |
---|---|
[Intellij / Eclipse] 콘솔 한글 깨짐 오류 해결 (0) | 2023.09.20 |
[Oracle Cloud] 외부접속 허용하기, port 열기, 고정 ip 할당 (0) | 2023.05.03 |
Riot API KEY 발급 OP.GG 클론코딩 (Riot Developer Portal) (0) | 2023.02.10 |
[이클립스/STS] Java was started but returned exit code=1 에러 해결 (0) | 2023.01.13 |