-
bandit 31 → 32
https://overthewire.org/wargames/bandit/bandit32.html 늘 하던 임시 디렉터리 생성 후 git clone을 수행한다. 이번 README 파일은 리포지토리에 푸시하라고 한다. 파일 이름과 내용, 브런치를 알맞게 설정하고 푸시하면 될 것이다. 브런치는 git branch로 현재 브런치를 확인할 수 있는데, master로 잘 접속 돼있으므로 건들지 않는다. 푸시할 파일을 생성한다. 생성한 파일을 추가하려고 하니 다음과 같은 메시지를 출력한다. 진짜로 추가하고 싶다면 -f 옵션을…
-
bandit 32 → 33
https://overthewire.org/wargames/bandit/bandit33.html 탈출하라고 한다. 현재 쉘에서 탈출해서 sh이든, bash이든 실행하면 될 것이다. 마지막 문제인데 무엇을 하든 퍼미션 디나이가 떠서 아무거나 다 입력해봤다. 그리고 $0가 얻어 걸렸다. $0으로 쉘을 하나 더 실행이 가능하다. 아래의 사진이 그 예시이다. sh 쉘을 두 번 더 실행했기 때문에 exit로 두 번 종료해도 sh 쉘인 것이다. /bin/bash를 한 번 실행하고 그 후…
-
VMware Tools 설치
https://rebugs.tistory.com/643https://www.liquidweb.com/blog/how-to-install-vmware-tools-ubuntu/ 아래의 순서 따르기
-
LEVEL 2: Client Side Template Injection
https://dreamhack.io/wargame/challenges/437 CSTI를 활용하여 문제를 풀어야 한다. CSP가 설정되어 있다. 자바스크립트에 대한 보안 설정인 “script-src”를 보면 nonce 설정, eval 사용 가능, ajax.googleapis.com 도메인은 로드 가능으로 설정되어 있다. ajax.googleapis.com 도메인을 허용하여 웹 프레임워크를 로드할 수 있다. 난 웹 프레임워크를 잘 모르지만 간단히 예시와 함께 설명하겠다. “https://ajax.googleapis.com/ajax/libs/angularjs/1.8.3/angular.min.js” 이 도메인을 <script> 태그의 src 속성으로 로드하면 AngularJS 기능을 사용할 수…
-
LEVEL 1: CSRF Advanced
https://dreamhack.io/wargame/challenges/442 CSRF는 요청을 변조하여 클라이언트를 공격할 수 있는 취약점이다. 해당 문제에서 취약점이 발생하는 부분인데, CSRF를 방지하기 위해 토큰을 생성하는 코드에서 CSRF 토큰 생성 알고리즘이 키 값에 대해 고정된 CSRF 토큰을 생성하는 데에 문제가 있다. 예시를 들면, dolephine 계정으로 192.168.0.100에서 로그인 시, “dolephine192.168.0.100” 문자열을 MD5로 해싱한 값을 토큰으로 사용한다. 계정과 IP에 대해 고정된 값을 저장하니, 로그아웃하고…
-
LEVEL 3: CSP Bypass Advanced
https://dreamhack.io/wargame/challenges/436 CSP Bypass 문제보다 보안이 강화된 버전이다. 해당 문제를 풀 때 꽤 애먹었는데 이유는 아직 못 찾았다. 마지막에 페이로드를 삽입하는 과정에서 이유모를 에러가 있었다. 어쨌든 문제를 풀어보겠다. CSP 설정은 저번 문제와 별반 다르지 않기 때문에 넘어가겠다. 페이지의 차이로는 취약한 /vuln 페이지에 헤더가 생겨서 /vuln?param=alert(1)가 먹히지 않는다. 이전 문제는 /vuln 페이지에 대한 HTML 파일도 존재하지 않았고…
-
bandit 25 → 26
https://overthewire.org/wargames/bandit/bandit26.html 이번 문제는 bandit26에 로그인 해야 한다. 개인 키 파일도 제공되어 인증까지는 문제가 없다. 그러나 bandit26로 로그인하면 /bin/bash 쉘을 사용하는게 아니라 /usr/bin/showtext를 사용한다. 그래서 인증에 성공하더라도 쉘이 실행되지 않아 무엇도 할 수 없다. 우선 주어진 sshkey 파일을 복사하여 저장한다. 나는 가상머신의 리눅스에 저장했다. 해당 키로 bandit26에 로그인 한다. 그러면 화면에 텍스트만 출력하고 연결을 끊어버린다. 이…
-
bandit 26 → 27
https://overthewire.org/wargames/bandit/bandit27.html 이번엔 bandit27의 패스워드를 잡으라고 한다. bandit 25 → 26 과정에 이어서 작업을 한다. 우선 홈 디렉터리의 파일 목록 중 setuid가 눈에 띄니 이것을 확인해본다. 커맨드를 실행하는 setuid 파일이므로 매개변수를 패스워드 파일 경로를 넘겨줘서 bandit27의 패스워드를 확인하면 된다. 크리덴셜 획득
-
bandit 27 → 28
https://overthewire.org/wargames/bandit/bandit28.html 이번은 깃을 clone해서 패스워드를 찾아야 한다. git 명령어로 clone을 하게 되면 파일 및 디렉터리를 다운로드하므로 임시 디렉터리를 생성하고 이동한다. 문제에서 주어진 정보로 git 명령어로 clone 한다. 패스워드는 bandit27과 동일하다. 생성된 디렉터리를 조사한다. 크리덴셜 획득
-
bandit 28 → 29
https://overthewire.org/wargames/bandit/bandit28.html 이번에도 git을 clone하고 패스워드를 찾아야 한다. bandit 27 → 28 과 동일하게 진행한다. 이번엔 크리덴셜을 주지 않는다. 그러면 git을 조사한다. 우선 git log 커맨드로 git 수정 이력을 조회한다. 아래부터 보면 “README.md 정의 -> 빠진 데이터 추가 -> 정보 수정” 이렇게 작업한 것으로 보인다. git show [commit]으로 어떤 작업들을 했는지 확인한다. 가장 최근에 한 작업이…