-
DVWA - Command Injection ( Low )모의해킹/Groot - 스터디 2023. 6. 3. 00:16
DVWA - Command Injection ( Low ) 입니다
개요
이 포스팅에서는 DVWA(Damn Vulnerable Web Application) - Command Injection, Low 단계 실습을 진행하면서 공부했던 내용에 대한 내용을 정리해 보았고, 모두 본인이 소유한 가상머신에서 실습이 이루어졌습니다
실습환경
M1 MacBook Air
16G RAM
UTM - 가상머신
Kali Linux 2023.1 - Apple Silicon (ARM64)목차
1. 취약점 설명 및 분석 - 소스코드 분석, Command Injection
2. Command Injection 실습
3. 대응방안
4. Reverse Shell
취약점 설명 및 분석
소스코드 분석
// 위치 : /var/www/html/dvwa/vulnerabilities/exec/source -> low.php <?php if( isset( $_POST[ 'Submit' ] ) ) { /*5*/ // 입력값 가져오기 $target = $_REQUEST[ 'ip' ]; // OS를 결정하고 ping 명령을 실행 if( stristr( php_uname( 's' ), 'Windows NT' ) ) { /*10*/ // 윈도우 $cmd = shell_exec( 'ping ' . $target ); } else { // *nix ( ~~nix 인 운영체제 ) /*15*/ $cmd = shell_exec( 'ping -c 4 ' . $target ); } // 마지막 사용자를 위한 피드백 $html .= "<pre>{$cmd}</pre>"; /*20*/ } ?>
4 ~ 6
사용자가 입력한 값이 있다면 입력값을 target 변수에 담아준다9 ~ 16
운영체제에 따라 다른 명령어를 실행해야 해서 윈도우인 경우와 아닌 경우로 나뉜다19
실행 결과를 화면에 출력한다Command Injection
DVWA - Command Injection ( Low )는 입력값이 ip 주소라면 ip 주소 이후에 입력된 모든 값을 target 변수로 가져온다
그리고 입력된 값을 그대로 쉘 명령어로 실행시킨 후 실행 결과를 사용자의 화면에 그대로 보여준다
Command Injection 실습
Command Injection 적용하기
입력창에 입력을 하면 입력한 값이 그대로 쉘로 옮겨져서 실행이 된다
따라서 Command Injection 을 하기 위해선 1줄 명령어를 사용해야 하기에 1개의 줄에 여러 개의 명령어를 적을 수 있도록 해야 한다
127.0.0.1; ls # localhost의 ip 주소; 현재경로의 목록 # ip 주소 뒤에 ;(세미콜론)을 사용해 주어야 한다
상위 폴더에 어떤 폴더들이 있는지 확인한다
상위 폴더에서 brute 폴더를 선택해서 이동해 보았다
위와 같은 방식으로 계속 이동하여 low.php 라는 소스코드를 화면에 출력하는 데 성공하였다
대응방안
이 경우 ip 주소를 이용하는 경우이므로 ip주소의 형식 이외에 ls, cat 과 같은 문자가 포함되어 있다면 제거해주어야 한다
입력의 첫 시작이 문자라면 정상적으로 작동하지 않음을 이용하여 ip의 최대 자리수인 15자리로 자리수를 제한하는 방법도 있지만 127.0.0.1 같은 경우 ip 의 주소가 짧기에 효율적이지 않다
Reverse Shell
Reverse Shell 을 실행시키기 위하여 여러 가지 시도를 해 보았고 local환경에서 kali linux로 접속을 하여 성공하였다
문제풀이
https://ruang0124.tistory.com/206
참고자료
https://youtu.be/HMYqJuo2FEo - Reverse Shell
728x90'모의해킹 > Groot - 스터디' 카테고리의 다른 글
DVWA - CSRF ( Low ) (0) 2023.06.04 DVWA - Vulnerability: CSRF, low 문제풀이 (0) 2023.06.04 DVWA - Vulnerability: Command Injection, low 문제풀이 (0) 2023.06.02 DVWA - Brute Force ( Low ) (0) 2023.05.28 DVWA - Vulnerability:Brute Force, low 문제풀이 (0) 2023.05.27