Loading the catalog…
Loading the catalog…
Task 1. With what kind of tool can intercept web traffic? 웹 트래픽을 인터셉트하는 툴은 대표적으로 BurpSuite가 있다. 해당 툴은 Proxy처럼 동작해 서버로 리퀘스트를 전송하기 전 HTTP 패킷을 수정하거나 내부 패킷을 확인하는 기능을 제공한다. 따라서 해당 task의 답은 Proxy이다. 사실 이전에 문제를 대충 읽어서 답은 burpsuite로 적었다가 다시 읽고 답이 proxy임을 알았다... Task 2. What is the path to the directory on the webserver that returns a login page? 로그인 페이지 경로가 무엇인지 물어본다. 가장 먼저 생각나는 방법인 gobustser 를 활용해보자. 로그인 경로가 따로 보이지는 않는다. 이 문제에서 프록시에 대해 언급했으므로 Burpsuite를 이용해 확인해보자. 지금까지 써 본 기능이 Proxy 기능밖에 없어서 크게 도움이 되지는 않았다. 이전까지는 헤더를 조작하는 웹해킹 문제만 풀어 봤으니... 따라서 Burpsuite 기능을 좀 더 살펴보았다. 맨 처음 메뉴인 Dashboard 의 가운뎃부분에 좋은 정보가 떠있다! gobuster 로는 탐지하지 못했던 서브디렉토리 정보가 자세히 나와있었다. 추측컨데 gobuster의 wordlist에 담긴 문자열로는 생성할 수 있는 URL이 한정적이다 보니 그런 것 같다. 찾아보니 burpsuite는 실제 HTTP 트래픽을 인터셉트해서 이를 Target 모듈에 기록한다고 한다. 이전의 HTTP Response 패킷의 Body를 분석해 해당 Site Map을 생성한다고 한다. 그래서 워드리스트에 의존하는 gobuster와 달리 직접 HTTP 패킷을 분석하므로 이전에 발견하지 못한 디렉토리/파일들을 발견할 수 있는 것이다. 단, /admin 처럼 숨겨진 웹페이지에 대해서는 실제로 연결해 볼 수 없기 때문에 이는 찾을 수 없다. 따라서 쉽게 말해 Gobuster와 상호보완적인 관계라 할 수 있을 것이다. 위 이미지처럼 /cdn-cgi/login 디렉토리에 script.js 파일이 존재한다. 따라서 Task 2의 답은 /cdn-cgi/login . Task 3.What can be modified in Firefox to get access to the upload page? 이전의 /cdn-cgi/login에 접속한 모습이다. 현재 알고 있는 admin 정보가 없으므로 관련 정보를 알아내야 한다. 먼저 웹사이트부터 조사해보기 위해 Login as Guest 를 눌러 게스트로 로그인한다. 5가지 메뉴 (Account, Branding, Clients, Uploads, Logged in as Guest)가 존재한다. 본 Task에서 질문하는 Uploads 페이지에 접근해보자. super admin 권한이 필요하다고 한다. 그렇다면 admin 계정과 관련된 정보를 알아야 할 듯 하다. 그런데 잘 생각해보면 문제는 Firefox 내부에서 수정할 수 있는 것이 무엇이냐고 물었다. Firefox는 잘 쓰지 않아 자세한 기능들은 모르지만 웹브라우저라면 쿠키는 있을 것이므로 쿠키를 찾아보기로 했다. devtool 키는 동일하게 f12였다. 이미지에서 볼 수 있듯, role 쿠키와 user 쿠키가 존재한다. 따라서 해당 Task의 답은 cookie . Task 4. What is the access ID of the admin user? 이전에 살펴보지 않은 나머지 메뉴를 살펴보자. 우선 Account 메뉴를 확인해보자. URL에 파라미터로 content , id 가 전달되었다. id를 1로 수정해보자. Access ID와 Name, Email이 변경되었다! 이로 인해 Admin의 Access ID가 34322임을 알 수 있다. Task 5. On uploading a file, what directory does that file appear in on the server? 파일을 업로드할 시 서버의 어느 디렉토리에 업로드되는지 물어보고 있다. 이전 문제에서 얻은 cookie 정보를 이용해 해당 웹페이지에 접근해보자. 이전과는 달리 파일을 업로드할 수 있는 웹페이지가 반환된다. 해당 페이지에 <?php system('id'); ?> 가 작성된 shell.php 를 업로드한다. Brand Name은 뭔지 모르니 우선 nike로 기입했다. 업로드된 파일은 이전에 gobuster로 찾은 /uploads 디렉토리에 저장된다. Task 6. What is the file that contains the password that is shared with the robert user? 해당 Task를 수행하기 전, 우리가 업로드한 php파일에 접근해보자. 정상적으로 php 파일이 실행된다. 이를 통해 php 리버스쉘을 실행할 수 있을 것이다. 리버스쉘 php파일으로 shell.php를 수정한 후 재업로드한다. 이후 파일을 탐색하던 중 아래와 같은 파일을 발견했다. 따라서 Task 6의 답은 db.php . Task 7. What executible is run with the option "-group bugtracker" to identify all files owned by the bugtracker group? -group 옵션을 사용하고 파일을 찾는 명령어는 find 이다. Task 8. Regardless of which user starts running the bugtracker executable, what's user privileges will use to run? 먼저, 이전 Task에서 사용한 -group bugtracker 를 이용해서 find를 수행한다. bugtracker 라는 실행파일이 있다. 해당 파일에 대해 ls -l을 실행해 보자. SetUID 프로그램이다. 즉, 실행하는 사용자와 무관하게 Root 권한으로 실행된다. bugtracker는 위 이미지처럼 일반사용자는 r 권한밖에 없다. 따라서 이전에 얻은 robert의 권한으로 로그인해 해당 파일을 실행한다. 위 이미지에서 cat /root/reports/<입력값> 을 실행한다. 이때 cat가 root 권한으로 실행되므로(SUID) 환경변수조작을 통해 cat 대신 쉘을 실행할 수 있다. 먼저 PATH 환경변수 맨 앞에 /tmp를 추가한다. 이후 /tmp 디렉토리에 /bin/sh 이 적힌 cat 를 생성한다. 생성 후 실행권한을 부여한다. 위 이미지처럼 루트쉘을 획득했다. 이제 /root 디렉토리의 flag.txt를 읽으면 되는데, 이전에 PATH 환경변수를 수정했으므로 이를 복원한 후 cat명령어를 사용해야 한다. 이후 다시 robert로 로그인해 user.txt를 읽는다.
What RADAR observed and classified to build this opportunity. It is what the source published, not a verification that the offer is still active.
HTB LABS:Oopsie. Task 1. With what kind of tool can intercept web traffic? 웹 트래픽을 인터셉트하는 툴은 대표적으로 BurpSuite가 있다. 해당 툴은 Proxy처럼 동작해 서버로 리퀘스트를 전송하기 전 HTTP 패킷을 수정하거나 내부 패킷을 확인하는 기능을 제공한다. 따라서 해당 task의 답은 Proxy이다. 사실 이전에 문제를 대충 읽어서 답은 burpsuite로 적었다가 다시 읽고 답이 proxy임을 알았다... Task 2. What is the path to the directory on the webserver that returns a login page? 로그인 페이지 경로가 무엇인지 물어본다. 가장 먼저 생각나는 방법인…
Open source