Git

1. 타켓 호스트 내에서 git 파일을 발견했다면 git-dumper 을 통해서 파일을 다운로드 받자

 

2. .htaccess 파일에 Required-Header를 명시함으로써 해당 헤더를 Get Request에 포함시켜야 접근 가능하도록 사이트 설정 가능

 

3. BurpSuite Proxy-Options 에 있는 Match and Replace 로 해당 헤더 옵션을 넣어서 해당 웹 사이트 방문 시 자동으로 해당 헤더 삽입

 


 

PHP

 

1. PHP Info로 해당 PHP가 어떤 Function을 허용 또는 미허용 하는지 확인 가능. 이를 왜 확인 하느냐 하면 PHP의 system  같은 Function 으로 OS Command 실행이 가능한데, 이것 말고도 실행 가능한 Function들이 더 있음. 그 중 어느 한 가지라도 허용이 되어 있으면 OS Command 실행 가능

 

* 왜 화이트 리스트 설정을 하지 않는가? : php.ini 파일에서 모든 Function을 미허용 할 수 없음. 이를 위해선 다른 php 모듈을 사용해야 하는데, 번거럽기도 하고 php 개발 시 힘들어서 블랙리스트를 사용하는 것으로 추정됨.

 

2. dfunc-bypasser python 파일로 해당 사이트 php info를 확인해서 어떤 Function을 RCE를 위해 사용할 수 있는지 알 수 있음

 

3. php file extension으로 업로드가 안되고, Extension을 바꾼 뒤 업로드를 하더라도 LFI가 없어서 실행이 불가할 때 zip 파일로 업로드 후 php의 phar wrapper로 실행할 수 있음.

 

phar wrapper는 앱 배포를 위한 파일 형식이러고 하는데, 이를 이용해 php 파일을 실행할 수 있다. PHP Parameter가 필요하긴 하나 유용하다고 생각한다. 예시는 다음과 같다.

 

http://url/?parameter=phar://path/upload(zip)/file(in zip)

http://www.naver.com/?test=phar://upload/test.zip/test이런 식으로 하여야 한다. 주의할 점은 zip 안에 있는 파일은 Extension을 제외하고 URL에 입력하여야 한다.(예시 test.php → test)

 


 

Python2

 

1. Python2의 input 함수는 코드 실행이 가능한 취약한 함수로 알려져 있다. 그러나 string type이라 원 라이너로 코드를 작성해야 하니 __import__('os').system('/bin/bash') 이런 식으로 입력하면 권한 상승 또는 리버스쉘 실행이 가능하다.

 

2. easy_install 은 pip 이전에 사용되던 모듈 설치 툴인데, 현재는 취약점도 많고 안정성도 pip에 밀려 잘 쓰이지 않는다. 여기에 sudo 권한이 있거나, SUID가 있으면 권한 상승이 가능한데 이는 다음과 같다(출처 https://gtfobins.github.io/)

TF=$(mktemp -d)
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
sudo easy_install $TF

 

가. mktemp -d 로 임시 디렉토리 생성 후 그 경로를 TF에 넣음.

 

나. 쉘을 실행하는 setup.py 파일을 TF 변수에 있는 경로로 삽입

 

다. easy_install 에 해당 경로 값을 줌으로써 파일 실행

'Hackthebox(Medium)' 카테고리의 다른 글

HackTheBox Certified(Medium) Write-Up  (0) 2025.11.20
HackTheBox Administrator(Medium) Write-Up  (0) 2025.11.20

+ Recent posts