기준
취약점 설명
웹에서 서버에 명령어를 전송하여 서버의 정보를 얻을 수 있는 취약점이며 서버의 관리자 권한을 탈취할 수 있는 심각하게 위험한 취약점입니다.
주통가이드에서 설명하고 있는 redirect와 같은 취약점 말고도 직접적인 명령어를 전달하거나 서버의 아이디 생성 및 서버 환경을 조작할 수 있을 만큼 심각한 취약점입니다.
이와 같이 운영체제 명령 실행은 백도어 설치 혹은 관리자 권한 탈취와 같은 취약점을 발생시킬 수 있는 취약점입니다.
공격 방법
공격 방법을 설명하기 위해 DVWA를 활용했으며 각 Level별로 별명 드리도록 하겠습니다.
페이지 UI는 각 단계별로 위와 동일합니다.
1. Low
위의 소스에서 보면 필터링을 거치고 있지 않는 것을 확인할 수 있습니다.
shell명령어를 받아오는 부분에 ping -c 4를 입력한 후에 사용자 입력 값이 삽입되는 것을 알 수 있습니다.
위 ping명령어가 실행된 후 ;를 사용하여 새로운 명령어를 실행시킬 수 있습니다.
127.0.0.1 ; cat /etc/passwd
위 명령어처럼 ; 를 활용하여 명령어를 나누고 2개의 명령어를 실행시킬 수 있습니다.
2. medium
medium level도 그렇게 다르진 않습니다.
&&와 ;를 필터링하고 있는 것을 확인할 수 있습니다.
여기에서 알 수 있는 것은 &&는 필터링하고 있으나 &를 단일로 필터링하고 있지는 않은 부분입니다.
- ; - 앞의 명령어가 실패해도 다음 명령어가 실행
- && - 앞의 명령어가 성공했을 때 다음 명령어가 실행
- & - 앞의 명령어를 백그라운드로 돌리고 동시에 뒤의 명령어를 실행
- | - 앞의 명령어 실행 결과를 뒤의 명령어로 넘겨 실행
- || - 앞의 명령어를 실행하여 앞의 명령어가 성공하면 뒤의 명령어가 실행되지 않음
위에서 처럼 다중 명령어를 사용하여 실행시키는 방법이 있습니다.
그럼 &를 단일로 써러 실행해보는 방법을 사용해 보겠습니다.
위처럼 &를 활용하여 실행이 가능합니다.
그럼 위의 다중 명령어를 활용하여 다른 방법도 사용해보겠습니다.
위처럼 |를 통해서도 실행이 가능합니다.
3. high
마지막 high level은 좀 더 많이 필터링하고 있는 것을 확인할 수 있습니다.
하지만 여기에서 주목해야할 부분은 |뒤에 띄어쓰기가 있는 부분입니다.
띄어쓰기를 인식하여 '| '를 필터링하는 것이지 |를 단일로 필터링하고 있는 것이 아닙니다.
그러면 지금까지와 비슷하게 명령어를 넣지만 띄어쓰기 없어 '|cat /etc/passwd'로 넣어보겠습니다.
이렇게 띄어쓰기만 없이 써도 필터링이 되지 않고 실행되는 것을 볼 수 있습니다.
------------------------------------------------------------------------------------------------------------------------------
물론 이것뿐만 아니라 ActiveX를 활용한 운영체제 명령 실행(RCE)도 가능한 경우도 있으며 CSV 파일을 이용한 Client Sode RCE 등 공격 방법은 다양하게 존재하고 있습니다.
'Web' 카테고리의 다른 글
SSI 인젝션 (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.03.02 |
---|---|
SQL 인젝션 (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.02.23 |
LDAP 인젝션 (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.02.22 |
포맷 스트링 (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.02.22 |
버퍼 오버플로우 (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.02.21 |