Info
[PHP] php보드 문제점
카카루카
2004. 1. 12. 19:42
글쓴이:보안 국내 게시판의 보안 문제 및 해결 방안 조회수:3615
Ksecurity Advisory
(Korea security group)
국내 게시판의 보안 문제 및 해결 방안
(CGI Security,perl security, php security)
- written by Ksecurity team
ksecurity@iland.co.kr
http://ksecurity.iland.co.kr
2001/01/16
---[ 서문 ]---
우리 팀은 국내 게시판들의 보안점검을 수개월전부터 진행해왔으며,
이 과정에서 국내 게시판 개발자들과의 접촉을 여러번 시도했으나
몇몇 개발자들을 제외한 개발자 대부분이 관심을 보이지 않았다.
국내의 대부분 개발자들이 간과하기 쉬운 부분이 Security 이며,
게시판들은 버그로 인한 공격이 매우 쉽기때문에 더욱 신경써야한다.
게시판을 통해 공격을 당하는 경우, firewall이 설치가 되어 있더라도
무용지물이 되기 십상이다.
국내 많은 중요 기관, 기업들이 국내에서 공개된 게시판들을 사용한다.
최근 보안 문제를 제공하는 원인중 상당부분이 바로 취약점을 가지고 있는
국내 게시판인것이다.
가장 좋은 해결 방법은 개발자들 스스로 보안 의식을 가지고
프로그램을 만들며, 꾸준히 패치하는것이라고 생각한다.
국내 게시판들의 보안을 위해 간략한 글을 쓴다.
(이론적인 부분은 많이 생략했다)
---[ 본론 ]--- "국내 게시판의 보안취약성과 예방법"
1. upload 취약점
- intro
php를 함께 사용하면서 upload 취약점은 국내 게시판의 공통적인 문제점이다.
지난 5월, 이 취약점을 이용한 'How apache.org was defaced' 가 공개되었으며
최근 국내에서 널리 악용되는것으로 보인다.
웹서버에 php를 같이 돌리고 있는경우 주의를 기울이자
- in a case
.php .ph 등의 file을 upload한후 nobody권한을 획득하고,
bindshell을 통한 시스템 침투.apache site가 해킹당한 이후
국내 크래커나 black hats이 많이 사용하는 기법이다.
- solution,patch
php4.x이상에서는 passthru함수등은 제거가 되었지만
현재 대부분의 국내 게시판이 위와 비슷한 취약성이 있다.
해결책으로는 JSBoard 개발자인 김정균씨가 제시한 방법이 좋은
방법이다.
file의 확장자가 php,php3,ph,ph. 등의 file이 upload되는것을
방지하고, apache에서 또한 강력한 인증을 하는 것이 좋다.
(Linux에서는 php. php3. 포함)
http://jsboard.kldp.org/bbs/read.php?table=bbs_notice&no=60
http://jsboard.kldp.org/bbs/read.php?table=bbs_notice&no=62
2. setup file(db passwd,기타설정) 노출
- intro
.ph .inc등 설정화일이 노출될수 있다.
- in a case
url을 통해 ph, inc 파일에 접근 할 수 있다.
- solution,patch
apache의 httpd.conf에 다음 줄을 추가함으로 설정파일이 노출되는
문제를 해결할수 있다.
AddType application/x-httpd-php .php .php3 .ph .inc
또한 .ph.php .inc.php 이런식으로 이름을 줄 수가 있다.
3. directory,file permission
- intro
국내 게시판의 대부분이 데이타를 저장함에 있어서
mode 777 로 된 디렉에 저장이 되고 o+w권한이 있는 화일이
생성이 된다.
- in a case
악의적인 목적을 가진 크래커나 black hats은
local 에서 쉽게 web server 권한을 취할수 있게된다.
또한 잘못된 permission을 통해 해당 글이 저장되는 화일을
볼 수가 있다.
drwxrwxrwx 5 ksecurity ksecurity 4096 6월 17 15:09 db/
-rw-rw-rw- 1 nobody nobody 154 7월 27 23:37 article.cgi
- patch
nobody를 제외한 유저들의 w 권한을 없애는 것도 하나의 방법
해당 글이 저장되는 화일에 대한 permission을 검사한다.
4. shell을 실행하는 함수의 취약점
- intro
< C >
system(),popen()
< perl >
system(),open(),eval(), exec(), ` `(Backticks)
< php >
system(),passthru(),exec(),popen(),escapeshellcmd(),` `(Backticks)
- patch
이러한 함수들을 사용할때에는 변수가 인자로 들어가는 경우
shell metacharacters 들을 제거 해야 한다.
shell metacharacters
;<>*|'&;$!#()[]{}:'"/^nr
- case1
$value =~ tr/+/ /;
$value =~ s/~!/ ~!/g;
$value =~ s/<([^>]|n)*>//g;
$value =~ s/([&;`'\|"*?~<>^()[]{}$nr])/\$1/g;
$value =~ s/
Ksecurity Advisory
(Korea security group)
국내 게시판의 보안 문제 및 해결 방안
(CGI Security,perl security, php security)
- written by Ksecurity team
ksecurity@iland.co.kr
http://ksecurity.iland.co.kr
2001/01/16
---[ 서문 ]---
우리 팀은 국내 게시판들의 보안점검을 수개월전부터 진행해왔으며,
이 과정에서 국내 게시판 개발자들과의 접촉을 여러번 시도했으나
몇몇 개발자들을 제외한 개발자 대부분이 관심을 보이지 않았다.
국내의 대부분 개발자들이 간과하기 쉬운 부분이 Security 이며,
게시판들은 버그로 인한 공격이 매우 쉽기때문에 더욱 신경써야한다.
게시판을 통해 공격을 당하는 경우, firewall이 설치가 되어 있더라도
무용지물이 되기 십상이다.
국내 많은 중요 기관, 기업들이 국내에서 공개된 게시판들을 사용한다.
최근 보안 문제를 제공하는 원인중 상당부분이 바로 취약점을 가지고 있는
국내 게시판인것이다.
가장 좋은 해결 방법은 개발자들 스스로 보안 의식을 가지고
프로그램을 만들며, 꾸준히 패치하는것이라고 생각한다.
국내 게시판들의 보안을 위해 간략한 글을 쓴다.
(이론적인 부분은 많이 생략했다)
---[ 본론 ]--- "국내 게시판의 보안취약성과 예방법"
1. upload 취약점
- intro
php를 함께 사용하면서 upload 취약점은 국내 게시판의 공통적인 문제점이다.
지난 5월, 이 취약점을 이용한 'How apache.org was defaced' 가 공개되었으며
최근 국내에서 널리 악용되는것으로 보인다.
웹서버에 php를 같이 돌리고 있는경우 주의를 기울이자
- in a case
.php .ph 등의 file을 upload한후 nobody권한을 획득하고,
bindshell을 통한 시스템 침투.apache site가 해킹당한 이후
국내 크래커나 black hats이 많이 사용하는 기법이다.
- solution,patch
php4.x이상에서는 passthru함수등은 제거가 되었지만
현재 대부분의 국내 게시판이 위와 비슷한 취약성이 있다.
해결책으로는 JSBoard 개발자인 김정균씨가 제시한 방법이 좋은
방법이다.
file의 확장자가 php,php3,ph,ph. 등의 file이 upload되는것을
방지하고, apache에서 또한 강력한 인증을 하는 것이 좋다.
(Linux에서는 php. php3. 포함)
http://jsboard.kldp.org/bbs/read.php?table=bbs_notice&no=60
http://jsboard.kldp.org/bbs/read.php?table=bbs_notice&no=62
2. setup file(db passwd,기타설정) 노출
- intro
.ph .inc등 설정화일이 노출될수 있다.
- in a case
url을 통해 ph, inc 파일에 접근 할 수 있다.
- solution,patch
apache의 httpd.conf에 다음 줄을 추가함으로 설정파일이 노출되는
문제를 해결할수 있다.
AddType application/x-httpd-php .php .php3 .ph .inc
또한 .ph.php .inc.php 이런식으로 이름을 줄 수가 있다.
3. directory,file permission
- intro
국내 게시판의 대부분이 데이타를 저장함에 있어서
mode 777 로 된 디렉에 저장이 되고 o+w권한이 있는 화일이
생성이 된다.
- in a case
악의적인 목적을 가진 크래커나 black hats은
local 에서 쉽게 web server 권한을 취할수 있게된다.
또한 잘못된 permission을 통해 해당 글이 저장되는 화일을
볼 수가 있다.
drwxrwxrwx 5 ksecurity ksecurity 4096 6월 17 15:09 db/
-rw-rw-rw- 1 nobody nobody 154 7월 27 23:37 article.cgi
- patch
nobody를 제외한 유저들의 w 권한을 없애는 것도 하나의 방법
해당 글이 저장되는 화일에 대한 permission을 검사한다.
4. shell을 실행하는 함수의 취약점
- intro
< C >
system(),popen()
< perl >
system(),open(),eval(), exec(), ` `(Backticks)
< php >
system(),passthru(),exec(),popen(),escapeshellcmd(),` `(Backticks)
- patch
이러한 함수들을 사용할때에는 변수가 인자로 들어가는 경우
shell metacharacters 들을 제거 해야 한다.
shell metacharacters
;<>*|'&;$!#()[]{}:'"/^nr
- case1
$value =~ tr/+/ /;
$value =~ s/~!/ ~!/g;
$value =~ s/<([^>]|n)*>//g;
$value =~ s/([&;`'\|"*?~<>^()[]{}$nr])/\$1/g;
$value =~ s/