본문 바로가기

공부/콤퓨타

CVE-2018-20062

728x90
반응형

CVE-2018-20062 취약점에 대해 간략하게 기록


ThinkPHP 는 중국 topthink 에서 개발한 apache2 기반의 php framework

문자열이 필터링 되지 않아 컨트롤러 클래스(app) 를 직접 접근하는 취약점

think 내 컨트롤러 클래스 app 객체를 생성 후 invokefunction 메서드를 호출

> app.php 클래스에 invokeFunction() 확인


쇼단에서 검색 시 다수의 사용 서버들 확인

> https://www.shodan.io/search?query=X-Powered-By%3A+ThinkPHP


X-Powered-By: ThinkPHP 정보를 헤더에서 제거방안

> php.ini , httpd.conf 수정



취약점 및 공격 참조 사이트

https://securitynews.sonicwall.com/xmlpost/thinkphp-remote-code-execution-rce-bug-is-actively-being-exploited/


패치 참조 사이트

https://blog.thinkphp.cn/869075

^[A-Za-z](\w|\.) 문자열 필터로 대안 마련



공격 로그 변천사:

index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]

이때만 해도 '\' 문자열의 우회값 공격 로그로 인식되어 정상적인 아스키 변환 코드로 확인 가능


/index/ HTTP/1.\think\x07pp/invokefunction&function=call_user_func_array&vars[0]

이런류의 공격은 아스키 변환 과정에서 오류(?)가 확인되어 '/index/.hink.pp/invokefunction' 이런식으로 인식함

패킷을 보면 07 헥사값은 쩜으로 표현되는게 아님에도 불구하고 쩜으로 표현되고 있음

09 도 과거에 자주 봤던 공백코드에 이용되었던 탭공백키지만 쩜으로 표현되고 있음




공격자의 실수(?) 또는 의도 인지는 모르겠지만 동일 유형의 공격 패킷의 정보는 일본 블로그에서도 확인되고 있음

https://www.peerlyst.com/posts/fun-with-php-bugs-mark-sitkowski


아스키 코드 테이블 참조

https://ascii.cl/


BELL 코드 참조

https://en.wikipedia.org/wiki/Bell_character





- 19.07.24 Thinkphp 정리 -





728x90
반응형

'공부 > 콤퓨타' 카테고리의 다른 글

IBM Security VIP Seminar  (0) 2019.12.05
Vectra  (0) 2019.12.04
IBM Security Summit Seoul 2019  (2) 2019.05.09
SWF/CVE-2018-15982  (0) 2018.12.30
2018년도 과학수사 국제학술대회  (0) 2018.11.05