일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Web Hacking
- Steganography
- OpenVPN
- packet
- ZTA
- 고전 암호
- Web Application Firewall
- write up
- Crypto
- web
- Web Hack
- Cryptography
- 비즈네르
- 보안 솔루션
- dvwa
- firewall
- It
- security
- MISC
- Command Injection
- 보안
- hping
- Zerto Trust Architecture
- hacking
- SOLUTION
- 가상 사설망
- Cross Site Scripting
- Zero Trust Model
- network
- 사설망
- Today
- Total
어 나 정현욱.
[ DVWA ] Command Injection ( Low ) Write Up 본문
DVWA ( Damn Vulnerable Web Application )
취약점 진단 및 모의 해킹을 공부/실습할 수 있도록 만들어진 웹 애플리케이션
Command Injection
개발자가 의도치 않은 명령어를 실행하는 해킹 기법입니다.
이해하기 쉽도록 예시를 들어 설명하겠습니다.
서버에 저장된 특정 파일을 읽는 웹 서비스입니다.
위 그림에서는 list.txt 파일을 읽으려는 정상적인 요청을 하고 있습니다.
위와 같은 요청을 받게 되면 서버에서는 cat list.txt 명령 실행 후에,
나온 결과 값을 사용자에게 반환해 줍니다.
위 그림은 Command Injection을 시도하는 모습입니다.
정상적인 입력값이 아닌 악의적인 구문을 입력하고 있습니다.
실행 결과를 보시면,
cat 1 명령어와 echo "Hi" 명령어 모두 실행된 모습을 볼 수 있습니다.
이와 같은 공격이 가능한 이유는
리눅스의 명령어 구분자( ; , 세미콜론 )를 이용했기 때문입니다.
리눅스는 세미콜론( ; )으로 구분되는 경우 세미콜론( ; )을 기준으로 명령어를 순차적으로 실행합니다.
따라서 다음과 같이 여러 가지 명령을 한 줄에 입력할 수 있습니다.
Write Up
Command Injection 페이지입니다.
해당 페이지에서는 ping 명령을 실행해 주는 웹 서비스를 운영하고 있습니다.
간단하게 코드를 설명해 드리겠습니다.
1) POST 방식으로 ip 입력값을 받아와서 target 변수에 저장합니다.
2) if-else 조건문을 통해 DVWA 서버 환경에 맞는 ping 명령을 실행합니다. ( Windows OR Linux )
3) 실행 결과값을 웹 페이지에 보여줍니다.
위 코드에서는 입력값을 받을 때, 명령어 구분자( ; , 세미콜론 )를 필터링하지 않기 때문에
Command Injection 취약점이 발생하는 코드입니다.
먼저 정상적인 입력값을 넣어보겠습니다.
개발자가 의도한 대로 ping 서비스가 잘 되는 것을 확인할 수 있습니다.
다음은 Command Injection을 시도해 보겠습니다.
Command Injection을 성공한 모습입니다.
명령어 구분자( ; , 세미콜론 )를 통해 echo 명령어를 실행시켰습니다.
(마지막 줄에 Command Injection! 이라는 문자열이 보입니다.)
저는 echo 명령어를 사용해 실습을 진행하였지만
실제로 /etc/passwd 같은 중요한 파일을 읽는다면 굉장히 위험한 취약점입니다.
되도록 직접적인 시스템 명령어 호출을 자제하는 것이 좋지만,
부득이한 경우 특정 문자 필터링을 통해서도 Command Injection을 방어할 수 있습니다.
이 글이 Command Injection을 이해하는데 도움이 됐으면 좋겠습니다. 😉
( 실제 서비스되고 있는 환경에서 사용하시면 안 됩니다. )
'DVWA' 카테고리의 다른 글
[ DVWA ] Reflected Cross Site Scripting ( Low ) Write Up (12) | 2023.07.13 |
---|---|
[ DVWA ] Brute Force ( Low ) Write Up (10) | 2023.07.10 |