피드로 돌아가기
Dev.toSecurity
원문 읽기
SQL Truncation 및 XXE 취약점을 통한 Root 권한 탈취
TryHackMe | Battery | WALKTHROUGH
AI 요약
Context
Apache 2.4.7 기반 웹 서비스에서 입력값 검증 미흡으로 인한 다중 취약점이 존재하는 환경. 사용자 계정 생성 및 권한 관리 로직의 설계 결함으로 인해 비인가자의 관리자 권한 획득이 가능한 구조.
Technical Solution
- Username 필드의 12자 제한 설정을 이용한 SQL Truncation Attack으로 관리자 계정 권한 탈취
- Account Number 파라미터의 입력값 인코딩 누락을 통한 Reflected XSS 및 HTML Injection 구현
- /report 경로의 실행 파일 분석을 통한 내부 로직 및 관리자 계정 정보 식별
- sudoers 설정 내 /usr/bin/python3 /home/cyber/run.py 실행 권한의 불완전한 격리를 통한 Privilege Escalation
- 실행 파일의 쓰기 권한 제어 실패를 이용해 임의의 Python 스크립트를 주입하여 Root 쉘 획득
실천 포인트
1. 입력 필드의 최대 길이와 DB 컬럼 크기를 일치시키고 Truncation 발생 시 에러 처리 로직 검토
2. 모든 사용자 입력값에 대해 Context-aware Encoding을 적용하여 XSS 및 Injection 방어
3. sudoers 설정 시 와일드카드나 수정 가능한 경로의 스크립트 실행 권한 부여 지양
4. 애플리케이션 내 민감한 설정 파일 및 실행 파일의 소유권과 권한(chmod) 최소화 원칙 적용