선릉역 1번 출구
Command Injection 본문
커맨드 인젝션(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