HTB-Devzat Write up
golang, git-dumper
웹페이지에서 파일과 URL 형식으로 파일을 업로드 할 수 있는 페이지 발견
php 형식의 웹쉘을 업로드 하였을때 무작위 값의 URL 형태의 값을 반환하고 접속 시 형식 에러로 에러페이지가 출력되지만 curl을 사용하여 접속 시 해당 파일의 소스코드를 확인할 수 있음
url 형식도 업로드 가능하여 SSRF 공격을 시도 하였지만 특정문구에 한하여 필터링이 처리되고 있음
우회를 시도하기 위하여 FoRge.htb, 0x7f000001(127.0.0.1) 등으로 시도한 결과 우회가 가능
gobuster를 사용하여 도메인 검색결과 admin.forge.htb 페이지 발견
접속결과 해당 페이지는 로컬호스트에서만 접속가능
URL 업로드에서 admin.forge.htb를 우회하여 접속 시 announcment 페이지를 발견
동일한 방법으로 announcment 페이지 접속 결과 중요정보를 획득가능
//ftp server credentials
user:heightofsecurity123!
upload endpoint now supports ftp, ftps, http and https protocols for uploading from url
/upload endpoint
url with ?u=<url>
획득한 정보로 ftp 접속을 시도하였지만 필터링이 됨
127.0.0.1에서 필터링이 되므로 해당 ip를 hex코드로 우회 시도
http://Admin.FoRge.htb/upload?u=ftp://user:heightofsecurity123!@127.0.0.1
http://Admin.FoRge.htb/upload?u=ftp://user:heightofsecurity123!@0x7f000001
ftp로 접속이 가능한것을 확인하였으므로 ssh연결을 위해 폴더 탐색하여 id_rsa값 획득
http://Admin.FoRge.htb/upload?u=ftp://user:heightofsecurity123!@0x7f000001/.ssh
http://Admin.FoRge.htb/upload?u=ftp://user:heightofsecurity123!@0x7f000001/.ssh/id_rsa
획득한 id_rsa 값을 활용하여 ssh 접속 가능
python 파일이 sudo 권한으로 실행가능한것을 확인
해당 python 파일 확인 결과 실행 시 임의의 포트번호로 실행이 되고
secretadminpassword를 통해 접속 가능하며 에러가 발생할시 pdb(파이썬 디버거)가 실행이됨
코드 내용을 알았으니 파일을 실행시켜주고 에러를 발생시켜 pdb로 접속가능
디버거에서 bash 쉘을 실행시켜 root쉘 획득 가능