선릉역 1번 출구

Command Injection 본문

Hacking & Security/Hacking

Command Injection

choideu 2022. 10. 26. 12:00

커맨드 인젝션(command injection): 명령어를 삽입한다는 뜻으로, 웹 요청 메시지에 임의의 시스템 명령어를 삽입하고 전송하여 웹 서버에서 해당 명령어를 실행하는 것

 

사용자가 입력한 값 ---> 검증 없이 시스템 명령어의 일부로 전달 ---> 웹 애플리케이션 내부(시스템 명령어 실행)

 

공격자는 이 값을 조작해 임의의 시스템 명령어를 실행할 수 있음

 

1. Ping 명령어에 ip 주소 입력하기

ip 주소를 적으면 명령어 실행 결과를 아래 출력함

 

2. 소스 코드 분석

$target = $_REQUEST['ip']
.
.
.
$cmd = shell_exec('ping -c 4' . $target);

ip 파라미터의 값이 target으로 192.168.0.101을 입력하면 ping -c 4 192.168.0.101로 전송됨

입력 칸에 ; ls를 작성하면 ping -c 4; ls로 ls 명령어의 실행 결과값이 출력됨

 

; 뒤에 명령어를 추가해 원격 호스트를 대상으로 시스템 명령어를 실행할 수 있음
이 방법은 아주 기본적인 커맨드 인젝션 공격 방법임
+ 윈도우의 경우 &&를 사용함

 

+ id를 사용해 현재 실행자 알기

현재 사용자의 권한이 www-data로 root가 아니기 때문에 관리자(root) 권한이 필요한 명령은 사용할 수 없음

이 경우에는 루트 권한을 획득하려는 권한 상승 공격(privilege escalation)을 시도함

'Hacking & Security > Hacking' 카테고리의 다른 글

[DVWA] Burp Suite를 사용한 Brute Force  (0) 2022.11.30
XSS and CSRF  (0) 2022.11.19
취약한 인증  (0) 2022.10.26
정보 수집  (0) 2022.10.17
HTTP 파라미터 오염(HPP)  (0) 2022.05.17
Comments