본문 바로가기
해킹/웹해킹

커맨드인젝션 공격

by 맑은청이 2020. 5. 2.
728x90
반응형

안녕하세요. 부산 공수니입니다. 오늘은 '커맨드 인젝션'에 대해 알아보겠습니다. 바로 Go.

 

컨맨드 인젝션은 명령어를 삽입한다는 뜻으로 웹을 통해 시스템 명령어를 실행하는 공격입니다. 

만약 웹 내부에서 시스템 명령어를 실행하는 경우 검사를 거치지 않는다면 해커 마음대로 시스템을 조작할 수 있게 됩니다. 

 

-커맨드 인젝션 공격 실습

 

*ping : IP 주소를 가진 어떤 시스템이 현재 동작하고 있는지 사용하는 명령어입니다. 

 

Security 를 'low'로 설정하고 Comman Injection 으로 갑니다. 

 

'127.0.0.1'을 입력해봅니다. 

결과

 

소스 코드를 확인해 보겠습니다. 

소스코드

shell_exec : 시스템 명령어 내리는 함수

$target -> request : 웹 요청으로 부터 전달된 'ip' 값임을 알 수 있다. 

 

전달된 ip 에 따라서 ping 명령어를 수행한다. 

 

이렇게 한 건 터미널 에서 실행한 거와 같습니다.

여기서 '-c 4'는 ping 으로 보내는 숫자를 의미합니다. 여기선 4번을 보내고 있습니다.

리눅스는 세미콜론을 이용해 명령어를 여러개 사용할 수 있습니다. 

참고) ls는 디렉토리를 확인하는 명령어 입니다. 

보시는 것과 같이 명령어를 실행한 후 ' ls' 명령어를 실행한 것을 볼 수 있습니다. 여기서 우리 관심은 뒤에 명령어에 관심이 있기 때문에 ip 를 주지 않아도 됩니다.

ip주소가 없기 때문에 ping 은 실패했지만 뒤에 ls 는 그대로 실행됐음을 볼 수 있습니다. 

 

자 그럼 DVWA 로 입력을 해보겠습니다. 

ls 명령어 실행, 디렉토리가 보여지고 있습니다. 

다른 명령어를 입력시켜보겠습니다. 

cat /etc 사이에 띄어쓰기 해주셔야합니다 .

시스템 사용자의 리스트가 출력됩니다. 다만 ';id'를 입력하면 현재 권한을 알 수 있습니다. 

'daemon'입니다. 이 권한이 웹 애플리케이션을 실행하는 권한입니다. 이 권한은 권리자 권한으로 실행시키는 시스템 명령어는 이용할 수 없습니다. 권리자 권한을 딸 수 있다면 모든 시스템을 마음대로 사용할 수 있게 됩니다. 실제 해커라면 지금처럼 daemon은 자격을 얻은 상태라면 권한상승을 통해 권리자 권한을 얻을려고 할 것 입니다 .

 

미디엄 단계로 올려보겠습니다.

';' 이 들어오면 지워 주고 있습니다. '&&' 는 윈도우에서 세미콜론과 같은 역할입니다. 이를 통해 커맨드 인젝션을 예방하고 있습니다 .

 

하지만 이는 충분치 않습니다. 세미콜론 이외에도 특수 문자들이 존재하기 때문입니다. | 나 & 등입니다. | 는 앞 명령어 결과를 뒤에 명령어 결과로 넘겨주는 특수문자인데 

 보시는 것과 같이 실행이 됩니다. 

 

&는 백그라운드로 명령을 실행하는데 사용하는 명령어입니다 .

&로 앞에 ping 명령을 백그라운드에서 실행되게 만들고 뒤에 명령어는 그대로 실행시켜버립니다. 

low 단계와 같이 사용자의 정보가 출력 되었습니다. 

이제 high 단계로 가보겠습니다!

 

소스코드를 보면 제한하는 기호가 늘어났습니다. 이렇게 하면 커맨드인젝션을 막을 수 있는 방식이 늘어납니다. 

 

사실 이 소스코드에서 개발자가 실수한 점이 존재합니다.

이와 같이 특수문자를 이어적었을때 막을 수 없다는 점입니다.

또한 '| ' 에 공백이 들어갔습니다. 이렇게 하면 명령어를 붙어서 입력하면 실행이 가능합니다

 

이렇게 오늘은 커맨드 인젝션 공격을 알아보았습니다! 대응 포스팅도 있으니 봐주세요ㅎㅎ

https://com24everyday.tistory.com/33?category=0

 

커맨드 인젝션 공격 대응

https://com24everyday.tistory.com/32?category=1114111 커맨드인젝션 공격 안녕하세요. 부산 공수니입니다. 오늘은 '커맨드 인젝션'에 대해 알아보겠습니다. 바로 Go. 컨맨드 인젝션은 명령어를 삽입한다는 뜻으..

com24everyday.tistory.com

 

728x90
반응형

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

CSRF 공격대응  (0) 2020.05.03
CSRF공격  (0) 2020.05.03
커맨드 인젝션 공격 대응  (0) 2020.05.02
브루트포스 공격대응  (0) 2020.05.01
브루트포스(Bruteforce)  (0) 2020.05.01