WEBHACKING/Beebox

Part 9. 알려진 취약점 컴포넌트

#23. PHP/ CGI/ Remote Execution

1. 알려진 취약점 컴포넌트 란?

- 웹 서비스 운영 시 영역별로 다양한 모듈과 라이브러리를 사용한다

- 보안상 안전하려면 정기적인 보안 패치가 필요하다.

 

2. What is zeroday attack?

-패치가 아직 이루어지지 않은 상태에서 공개되는 공격.

- 침해 위협 탐지 모니터링을 강화하거나 소스코드를 직접 수정하여 대응해야 한다.

- 개시된 시점과 프로그램 제작자가 패치를 내놓는 시점 사이에 존재한다.

 

3. PHP/CGI/Remote Code Execution

- sapi/cgi/cgi_main.c에서 cgi 스크립트가 질의 문자열을 제대로 처리하지 못함.

사례) 반디집 업데이트 웹 서버 해킹

- phpcgi 기반으로, mod_cgid 라는 module을 사용하여 동작할 때, php-cgi argument를 받아서 실행한다.

=> shell 까지 가져올수 있는 취약점이다.

 

* Php-CGI options

1) -n option: php.ini를 사용하지 않는다.

2) -s option: 소스코드에 색을 반영하여 보여준다.

3) -d option: php.ini 에 정의된 설정 내용을 임의로 설정한다.

설정

내용

allow_url_fopen=1

외부의 url로부터 파일을 호출함.

allow_url_include=1

외부의 파일을 include,include_once,require등과 같은 파일로 include를 허용한다.

auto_prepend_file=php://input

Http Request Body로 데이터 가져와 실행.

 

 

 

 

# 24 . 셀쇼크 취약점

-> shellshock 취약점

공격 범위: Mac osx, android, openBSD, DHCP client, SSH server등이나 apache를 이용하는 웹서버, 공유기 등

- 현재까지 관측된 공격자의 주요 활동으로는 취약점 스캔, 악성코드 유포, ddos 공격을 위한 본넷 구성 등이 있다.

ex) 미 국방성 ip 주소 범위를 대상으로 한 스캔 공격, 야후 서버 해킹.

 

->Shellshock 취약점 분석

: 환경 변수와 함께 선언되는 함수 선언과 명령어 삽입

- 패치된 bash 버전에서는 환경변수 처리 시에 함수 선언문인지 확인 하고, 명령어 처리 횟수를 1회로 제한하여 parse_and_execute() 함수를 호출하게 된다 : 무분별하게 명령어를 모두 읽는 일은 없어졌다.

 

 

 

 

#25. Stack Bufferoverflow 기초

->Buffer overflow ?

: 버퍼 라는 것은 보통 데이터가 저장되는 공간을 일컫는데, 단순히 메인 메모리만이 아닌 다른 하드웨어에서 사용하는 임시 저장 공간 역시 버퍼라고 부른다.

:컴퓨터 보안과 프로그래밍에서 사용하는 용어로 데이터가 버퍼에 써지는 동안, 정해진 버퍼를 벗어나 다른 영역을 덮어쓰게 되는 비정상적인 현상을 말한다.

: 공격자가 원하는 비정상적인 코드를 실행할 수 있기 때문에 심각한 취약점으로 분류된다.

 

=> 버퍼 범위보다 훨씬 큰 코드를 가진 파일을 이용해 직접 실습해보았다.

방어하는 기술에는 Nop sled, 환경 변수를 이용한 방어 등의 방법이 존재한다.