본문으로 바로가기

JPGChat : ServerSide Injection

category Pentest/TryHackMe 2021. 3. 11. 23:35
728x90
반응형

문제를 풀다 기초적인데 어디선가 들었던 내용인 문제에 직면했습니다. 기억이 흐릿해서 다시 정리해보자는 취지에서 간략히 포스팅하기로 했습니다.

소스입니다. 사용자 입력 값이 [REPORT]이면 report_form() 함수가 실행됩니다. 그런데 report_form() 함수는 문제가 있어 보입니다. 아래의 소스를 봅시다.

 

report_from()의 일부분인데 사용자 입력값을 그대로 받아들여 리눅스 명령어를 실행하는 os.system() 함수의 인자 중간에 연결해서 사용하고 있습니다. 마치 ServerSide Injection 으로 풀어낼 수 있을 것 같습니다. 이 경우에는 ';' 문자를 써서 명령어를 연결하여 Reverse Shell을 얻을 수 있습니다.

 

이 문제에서 요구하는 Root 플래그를 얻어봅시다. 

root 권한으로 실행되는 test_module.py는 compare라는 라이브러리를 사용하고 있습니다. 권한 상승을 하기 위해선 PYTHONPATH라는 환경변수를 조작해야 될 것으로 보입니다. 파이썬은 내부적으로 파일을 찾기 위해 탐색하는 경로가 있는데 그 중 하나가 PYTHONPATH입니다. 즉 compare.py라는 파일을 하나 만들고 쉘을 실행시킬 수 있는 명령을 쓰고 PYTHONPATH 환경변수를 변경한 다음 test_module.py를 실행해보겠습니다

 

vi,vim,nano가 없어 echo로 하나하나 추가해주긴 했지만 이 과정은 확실히 root 권한을 얻을 수 있었습니다.

 

728x90
반응형

'Pentest > TryHackMe' 카테고리의 다른 글

[TryHackMe] Ninja Skills  (0) 2023.03.18
[TryHackMe] IDE  (0) 2021.10.17
[Try Hack Me] : Chill Hack ( part.2 Root)  (0) 2020.12.12
[Try Hack Me] : Chill Hack ( part.1 USER Escalate)  (0) 2020.12.07
[TryHackMe] : StartUp  (0) 2020.12.05