티스토리 뷰
(WebGoat) A2. Cryptographic Failures - Crypto Basics #4 Java Cacerts
SalaYH 2024. 3. 24. 02:26이번 세션에서는 준비된 도커이미지를 다운받고, 해당 이미지의 /root 경로에 있는 파일을 확인하여 제시한 암호문을 복호화하는 것이다.
우선 도커 이미지부터 다운받고 bash shell로 해당 도커에 접속해보자
docker exec -it [docker image id] /bin/bash |
이제 /root에 접속해보면, 현재 사용된 계정은 권한 때문에 접근이 불가능하다는 메시지를 받게 된다.
그럼 이번에는 passwd 파일을 확인하여 관리자 그룹으로 변경해보면 어쩔까 싶어, /etc/passwd 파일을 확인해 보았다.
역시 현재 사용되고 있는 webgoat 계정의 UID/GID는 root와 다른 값이였다. 이제 이 /etc/passwd를 로컬로 다운로드 받아 수정 후 관리자 UID/GID로 변경을 해보자
docker cp [docker image id]:/etc/passwd ./passwd vi ./passwd docker cp ./passwd [docker image id]:/etc/passwd |
그리고 다시 도커에 Bash shell로 접속하여 /root에 접속해 보니 이번에는 정상적으로 해당 디렉토리에 접근 및 저장된 파일을 확인할 수 있었다. 저장된 파일명은 default_secret 이였고, 해당 파일에 저장된 암호키는 'ThisIsMySecretPassw0rdF0rY0u' 이라는 것을 확인할 수 있었다.
그럼 이제 퀴즈에서 이야기 하고 있는 암호문을 해당 암호키 파일을 이용하여 풀어보면 이번 퀴즈의 답을 확인할 수 있다.
아키텍쳐나 시큐어코딩 영역보다는 모의해킹 영역에서 다루는 내용이다보니 정말 오랜만에 리눅스 명령어나 passwd 파일 등을 만져보았다. 15년 전에 배웠던 내용이 아직 기억에 남아있었다는 것이 더 신기했던 세션이였던 것 같다.
가끔 웹서비스가 도커를 통해 구동될 때, Credential 등을 도커 내 환경변수나 파일 등에 저장하여 이용하는 경우를 확인할 수 있다. 일반적으로 Password, Credential 과 같은 중요값은 환경변수나 파일에 저장하지 않고 별도의 Secret Maangement 등에 저장하여 이용하도록 가이드를 하고 있다. 왜 그렇게 해야 하는지에 대한 이유가 이번 세션을 통해 확인할 수 있었다. CI/CD 상에서 도커에 자동으로 환경변수 등에 설정하도록 하고, 해당 도커 인스턴스에는 일반 유저가 접근하지 못하도록 ACL을 적용한다 하더라도, 여전히 같은 리스크가 남아 있을 수 있으므로, 안전한 Secret Management 등을 통해 중요 값이 저장 및 이용되어야 할 것 이다.
'Web Analytics > WebGoat' 카테고리의 다른 글
(WebGoat) A3. Injection - SQL Injection (Advanced) (1) | 2024.06.02 |
---|---|
(WebGoat) A3. Injection - SQL Injection (Intro) (0) | 2024.03.31 |
(WebGoat) A2. Cryptographic Failures - Crypto Basics #3 Signature (0) | 2024.03.24 |
(WebGoat) A2. Cryptographic Failures - Crypto Basics #1 Base64 (0) | 2024.03.24 |
(WebGoat) A1. Broken Access Control - Spoofing an Authentication Cookie (0) | 2024.03.23 |
- Total
- Today
- Yesterday