이번 실습은 단순 XSS를 넘어서, 서버의 시스템 명령어를 실행하거나 쉘을 획득하는 중급 취약점들을 다뤘다.
PHP eval() / system(), SSI 삽입, iframe 악용, OS 명령어 삽입 등의 위험한 공격 시나리오를 경험하고, 그에 대한 대응 방안까지 확인했다.
1. PHP Code Injection
PHP Code Injection이란?
입력값이 eval(), system() 등 PHP의 함수로 전달되어 서버 측 코드로 실행되는 취약점이다.
공격자가 임의 코드를 실행하거나 시스템 명령을 실행할 수 있다.
1) message=phpinfo() 입력 => PHP 설정 출력
2. message=system('ls') => 서버 명령 실행
3. nc 명령으로 리버스 쉘 연결 성공
cat /etc/passwd 해주면 계정 정보들도 확인할 수 있다.
2. SSI Injection
SSI (Server Side Include) Injection이란?
웹 서버가 .shtml 등의 파일에서 SSI 구문을 실행할 때, 외부 입력이 삽입되어 시스템 명령어를 실행할 수 있는 취약점이다.
1) <--#exec cmd="ls" --> 삽입 => 서버 명령어 실행
사용자 IP 확인용 코드 등도 조작이 가능해진다.
3. iframe Injection
iframe Injection이란?
공격자가 <iframe> 태그를 삽입하여, 사용자의 브라우저에 다른 웹사이트를 몰래 로드하거나 악성 페이지로 이동시키는 공격이다.
1) iframe에 악성 스크립트 포함 => 쿠키 탈취 가능
2) Burp Suite로 ParamUrl 파라미터 조작하여 공격 삽입
4. OS Command Injection
OS Command Injection이란?
입력값이 시스템 명령어로 전달되어, 공격자가 서버에서 직접 명령을 실행할 수 있는 취약점이다.
서버 권한 획득, 파일 조작, 백도어 설치 등으로 이어질 수 있다.
1) nc ... -e /bin/bash 입력해서 서버 쉘 연결 성공 => 공격 후 pwd, ls, cat /etc/passwd 등 명령 실행 가능
2) ;whoami 입력
5. 대응 방안
취약점 | 대응 방안 |
PHP Code Injection | eval() 등 위험 함수 사용 금지, 화이트리스트 기반 실행 |
SSI Injection | SSI 비활성화, 외부 입력 삽입 방지 |
iframe Injection | X-Frame-Options 헤더로 iframe 차단 |
OS Command Injection | 입력값 검증, 시스템 명령어 호출 차단 또는 wrapper 처리 |
6. 마무리
이런 중급 취약점은 보안 설정 미비 시 공격자가 서버 권한을 직접 획득할 수 있다는 점에서 매우 위험하다.
모든 입력값은 신뢰할 수 없다는 전제로 필터링, 검증, 인코딩이 필요하며, 서버 측에서도 명령 실행 로직 자체를 제거하는 것이 가장 효과적이다.
이 블로그는 불법 해킹 및 악의적인 활동을 지양하며, 그런 행위는 절대 권장하지 않습니다.
모든 실습은 허가된 환경에서만 진행해야 하며, 법적 책임은 사용자 본인에게 있습니다.
'웹 해킹 & 보안' 카테고리의 다른 글
[2편] 웹 모의해킹 Tool (2) | 2025.05.13 |
---|---|
[1편] 웹 모의해킹 Tool (2) | 2025.05.13 |
[2편] OWASP TOP10 실습 - HTML Injection과 XSS 분석 및 대응 (0) | 2025.05.12 |
[1편] OWASP TOP 10 (0) | 2025.05.12 |
웹 취약점 실습 - bWAPP SQL Injection - sqlmap 자동화 도구 활용 (0) | 2025.05.11 |