Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
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
Archives
Today
Total
관리 메뉴

HW_chick hacker

DVWA실습 - Command Execution 본문

Activity/DVWA

DVWA실습 - Command Execution

{{HW}} 2024. 7. 16. 03:22

 

 

Command Injection 이란?

 

Command Injection 취약점은 취약한 애플리케이션을 실행 중인 서버에서 임의의 운영체제 명령을 실행할 수 있는 취약점을 의미한다.

이 취약점이 존재할 경우 애플리케이션을 구동하고 있는 시스템 계정의 쉘 권한을 획득한 것과 같기 때문에 위험도가 높은 취약점 중 하나이다.

 

 

low 단계

 

IP를 입력하는 곳에 IP를 넣으면 ping 테스트를 한다.

여기서 박스안에 코드를 유추 할 수 있다. 

ping -c 3 {IP}

 

ping은 3개만 보내고 종료가 되고 있다. ' or " 두개로 함수가 묶여 있을거 같아 탈출하고 리눅스 명령어를 삽입해보겠다.

 

8.8.8.8'; ls -al

탈출 시키고 리스트 목록을 검색하면 위 그림과 같이 프론트 단에서 리눅스 서버 쉘을 볼 수 있다.

 

medium 단계

low단계에서 했던 방식은 안된다.

 

명령어 설명
; (세미콜론) 하나의 라인에 입력된 명령어들을 성공, 실패와 관계 없이 모두 실행한다.
& (엠퍼센트) 엠퍼센트로 명령어를 구분하여 앞의 명령어는 백그라운드로 실행하고, 즉시 뒤의 명령어를 실행한다.
앞 명령어의 성공 여부와 관계 없이 뒤 명령어는 실행된다.
&& (더블 엠퍼센트) 앞에 입력된 명령어가 실패하면 뒤에 있는 명령어를 실행하지 않는다.
| (버티컬 바) 앞에 입력된 명령어의 실행 결과를 뒤 명령어의 입력으로 넘겨준다.
|| (더블 버티컬 바) 앞에 입력된 명령어가 성공하면 뒤에 있는 명령어는 실행되지 않는다.

 

다중 명령어를 입력할 수 있는 특수문자를 활용해 우회해서 공격해 보겠다.

 

| ls

 

이전에 ;(세미콜론)과 &&(더블 엠퍼센트)를 입력하여 Command Injection 공격을 수행하였을 때는 Medium 레벨에서 실패하였기 때문에 다른 다중 명령어를 입력할 수 있는 특수문자를 사용하여 Command Injection 공격을 추가로 시도한 모습이다.

다른 다중 명령 입력 특수문자(&,|)를 입력하여 Command Injection 공격을 수행하였을 때는 공격에 성공해 시스템 정보가 출력되는 모습을 확인할 수 있었다.

 

 

Command Injection 대응방안

Command Injection 에 취약한 함수 목록

 

 

Command Injection의 경우 일반적으로 취약한 함수를 사용함으로써 취약한 환경이 만들어지기 때문에 위 사진에 보이는 함수들은 특별한 사유가 없다면 사용을 지양해야 한다.

 

입력값을 검증할 수 있는 로직 구현

 

부득이하게 취약한 함수를 개발에 사용해야 할 경우에는 사용자가 입력한 값을 검증할 수 있는 로직을 구현하는 것이 중요하다.

예시로 이전 실습에서 본 Ping 명령을 수행하는 기능의 경우 특정 IP를 대상으로 기능을 수행하는데 IPv4의 경우 OOO.OOO.OOO.OOO과 같이 8비트씩 .(Dot)을 기준으로 4번 사용하여 총 32비트로 구성되게 된다. 이것을 이용해 8비트씩 .(Dot)을 기준으로 4번만 입력되도록 로직을 위 사진과 같이 구현할 수 있다.

 

특수문자 입력 필터링

 

대부분의 Injection 취약점들이 특수문자를 입력함으로써 문제가 발생되기 때문에 불필요한 특수문자 입력을 제한할 수 있는 로직을 구현한다.

 

 

 

[출처: https://maker5587.tistory.com/61?category=1367491 ]

'Activity > DVWA' 카테고리의 다른 글

DVWA실습 -File Inclusion  (0) 2024.07.25
DVWA실습 - SQL Injection  (0) 2024.07.18
DVWA 실습 - Reflected Cross Site Scripting (XSS)  (0) 2024.07.16
DVWA 실습 - Brute Force  (0) 2024.07.12