Month of PHP Bugs - 4일차

휴~ Stefan Esser 가 오늘 발표된 2 개의 취약점 외에 추가로 2 개의 취약점을 더 발표했습니다. 발표 시기나 발표 분량이 불규칙해서 쫓아가기 힘들군요. 날짜 단위로 구분하기도 애매하고... 이제 Month of PHP Bugs 에서 발표된 취약점은 총 9 개가 되었습니다.

추가 발표된 취약점의 리스트는 아래 그림과 같습니다.


( 추가로 발표된 취약점 리스트 )


추가 발표된 취약점의 특징은 PHP 보안팀의 무능함을 보여주려고 한다는 것입니다. Mr. Esser 입장에서는 두 취약점이 PHP 보안팀이 밥값을 못해서 벌어진 일이라고 보는 거죠.

8 번째 취약점은 phpinfo() 함수의 취약점으로 예전에 발표된 취약점이 다시 불거져 나온 것입니다. 이럴 때 보안 전문가들은 '쟤네들 소스 관리 체계나 변경 관리 체계도 없나봐' 라고 얘기하곤 하는데, 저 같은 경우 상용 유닉스에서 자주 본 모습이라 새삼스러울 것도 없습니다.

phpinfo() 함수가 사용자 입력을 그대로 결과 화면에 출력하기 때문에 XSS 취약점에 노출되어 있다고 발표된게 좀 됐죠? 해당 취약점을 고친 후에 이런 저런 기능이 추가되고 하다보니, 다시 동일한 취약점이 나오게 되었다네요. PHP 4.4.3 부터 4.4.6 최신 버전까지 모두 이 취약점에 노출되어 있다니 아쉽습니다.

해당 취약점에 대해서는 테스트 코드와 수동 테스트 방법이 제공되니까 업무에 참고하시길 바라고, 운영 서버에는 phpinfo() 가 포함된 소스를 find 명령어로 다 뒤져서 제거해주시는 것이 좋겠습니다. 아시다시피 phpinfo() 는 시스템에 대해 너무나 상세한 정보를 해커에게 제공하니까 운영 서버에서 제거하는게 원칙입니다. 모의해킹 하다 보면 80 ~ 90 % 의 운영 서버가 phpinfo() 를 info.php 나 phpinfo.php, test.php 로 웹 서버 루트에 올려놓고 계시더군요. 뚫리기 딱 좋습니다.

9 번째 취약점은 PHP 의 CVS 버전이 가진 취약점입니다. 이 취약점은 PHP 보안팀 입장에선 결정타라고 볼 수 있는데요, 한마디로 '보안에 대해 깊이 있는 지식이 없는 사람들이 보안전문가인척 하면서 대충 소스 고쳐서 오히려 문제를 만들어냈다.' 라는 비난을 받기 딱 좋은거죠.

이 취약점은 PHP 프로젝트가 strncpy, sprintf 같은 취약하다고 알려진 함수들을 strlcpy, spprintf 같은 안전한 함수로 대체하는 와중에 불거져 나온 취약점입니다. 전체 로직에 대한 명확한 이해가 없이 함수를 1:1 로 대치시키니까 코드가 쪽나거나, 멀쩡하던 코드에 버퍼오버플로우 취약점이 생기는 거죠.

CVS 버전의 PHP 는 WDDX extension 에 버퍼오버플로우 취약점이 있다고 하니 주의하시는 게 좋겠습니다. 취약점 검증 도구(Proof of Concept)가 함께 제공되니까 Snapshot 버전 쓰시는 분들은 확인해보시는게 좋겠네요.

외국이나 한국이나 보안 전문가인 척하며 사기치고 다니는 사기꾼들이 진짜 보안 전문가들 속썩이는 건 마찬가지인가 봅니다. (이 부분은 오해의 여지가 있어 삭제합니다)

--- 추가 ---
8 번째 취약점에 대해 추가할 사항이 있습니다.
원래 Stefan Esser 가 발표한 내용에는 4.4.3 부터 4.4.6 이 취약하다고 적혀있는데, PHP 6.0 snapshot 버전에서 테스트한 결과 역시 취약한 것으로 확인되었습니다.

테스트 결과는 다음과 같습니다.


( PHP 6.0 snapshot 버전 확인 결과 )


무려 3 군데에서 사용자 입력값을 그대로 반환하는 군요.

PHP 6.0 snapshot 이 취약하다는 것은 얼마전 릴리즈된 PHP 5.2.1 도 역시 취약할 가능성이 매우 높다는 것입니다. 주의하시길 바랍니다.

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 헐랭이 | 2007/03/04 10:45 | 보안 정보 | 트랙백(1) | 덧글(14)

트랙백 주소 : http://swbae.egloos.com/tb/1520466
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from Think Differ.. at 2007/03/06 20:11

제목 : PHP 4.4.2 phpinfo() XSS 취약점 ..
Stefan Esser 의 MOPB 덕택으로 PHP 의 취약점이 무더기로 발표 되고 있습니다.. 아직까지는 그렇게 까지 Critical 하다고는 생각되진 않은데... 재미있는 취약점이 재현 된게 있네요... ^^ 공개된 취약점 MOPB-08-2007 을 보면, PHP 4.4.3 부터 phpinfo() 에서 XSS 취약점이 있음을 알 수 있습니다. 또한 이전에 공개된것으로 보여지는 권고문 을 보면, PHP 4.4.0 에서 XSS 취약점이 존재 하......more

Commented by bzImage at 2007/03/05 07:25
안녕하세요.
... 뭐랄까. 생각만큼 그리 "PHP 최후의 날" 급의 강력한 버그는 없다는 느낌도 드네요. 제가 너무 강렬한 버그를 기대하는걸까요?
Commented by 헐랭이 at 2007/03/05 11:01
bzImage// 홈런을 원하시는가봐요. 하긴, 여기 저기 크게 알려놓은 것에 비해 조용하게 시작하는 감도 없지 않네요. 그래도 아직 초기니까 인내심을 가지고 기다리면 왕건이 하나 건질 수 있지 않을까 싶어요. 아니면? 말고! ㅋㅋㅋ...
Commented by leo at 2007/03/05 22:17
no se entiende nada!... está todo en ??????????
Commented by 헐랭이 at 2007/03/05 23:34
I'm not good at spanish, leo. I'll explain in english, sorry.
Please check the last screenshot. it's obvious that PHP 6.0 CVS snapshot is affected.
Other contents written in *korean* are the summary of the MOPB vulnerabilities day 3, 4.
I'm introducing the works of the MOPB to many korean nerds.
tenga un día agradable
Commented by 헐랭이 at 2007/03/06 21:53
lee// computer nerds 는 멍텅구리가 아니구요... geek 이나 nerd 라는 표현 많이 쓰는 걸로 아는뎅... 컴퓨터광들을 지칭하는 것으로 아는뎅~
Commented by LEE at 2007/03/07 09:19
아 ~저는 농담으로 쓴 댓글인데 오해의 소지가 있어서 삭제하겠습니다 헐랭이님 죄송합니다.
Commented by 헐랭이 at 2007/03/07 10:01
lee// 농담인데 굳이 삭제하실 필요가... ㅋㅋ... 저 속좁은 사람 아닌뎅~
Commented by 김정균 at 2007/03/08 00:33
음 5.1.6 은 8번째 문제에 해당되지 않는 것 같습니다.
Commented by 헐랭이 at 2007/03/08 09:29
정균님 찾아주셔서 감사합니다.
Commented by xss at 2007/05/24 17:16
안녕하세요 이 글을 읽고 php취약점을 시험해보고 싶었습니다.
그래서, 제 컴퓨터에다가 아파치+php+mysql 설치 하였고.
phpinfo화면이 나타나게 하고요
http://localhost/index.php 옆에다 ?a[]=<script>alert(/XSS/);</script>를 붙이고
실행을 했더니 안되는거에요..

'다른 사이트에서 해보면 되는건가?' 하는 생각이 들어서요
다른 사이트의 phpinfo 화면 켜고 그 주소 옆에다 ?a[]=<script>alert(/XSS/);</script>를 붙이고 실행하니 /xss/ 이런 창이 뜨더라고요

궁금한게 있는데요.. 제가 범죄를 저질른건가요? 저 이제 잡혀가나요?
Commented by 헐랭이 at 2007/05/24 17:21
xss // 네, 잡혀갑니다. 어서 '범죄자 인도 협정' 이 맺어져 있지 않은 제3국으로 튀세요. ㅋㅋㅋ~
Commented by 헐랭이 at 2007/05/24 17:26
xss // 아참, 중국이 싸다고 거기 가실려는 분들도 많은데, 중국은 자국 해커에게는 관대하지만, 다른 나라 해커들은 잡히면 거의 일주일 이내에 총살형이라고 하더군요. 중국 비추~
Commented by xss at 2007/05/24 17:29
헉.. 정말 잡혀가는군요.... 저 자수 해야할까요?
잡혀간다는거 농담이지요?... ㅜㅜ
Commented by 헐랭이 at 2007/05/24 17:37
xss // 농담 아닙니다. 허가를 받지 않고 타 사이트의 보안 현황에 대해 점검하는 것은 현행법상 불법입니다. 약 3~4 가지 법률을 한꺼번에 위반하신 상황이거든요? 자수 여부에 대해서는 본인이 판단하시길 바라고, 참고로 저는 해당 문제에 책임이 없는 거 아시죠? 저는 국내 보안 수준 개선을 위해 PHP 보안에 대한 정보를 제공해드린 것인데, 이 정보를 xss 님께서 부당하게 악의적인 용도로 활용하신 거니까요.

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶