일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- webhacking
- CVE
- XSS
- backdoorctf 2023 web Unintelligible
- backdoorctf 2023
- WEB-hacking
- 해킹캠프
- RCE
- WarGame
- 해외 워게임
- hacking
- backdoorctf writeup
- backdoorctf 2023 web
- XSS-game
- Hacker.org
- php
- CTF
- Web Hacking
- 해킹캠프 ctf
- 해외 wargame
- thinkPHP
- hackingcamp ctf writeup
- 웹 해킹
- writeup
- hackingcamp
- cve 분석
- hackctf
- 웹해킹
- Web
- wargame.kr
- Today
- Total
<OOO>
CVE-2017-14537 TrixBox Path Traversal 본문
CVE 코드 : CVE-2017-14537
취약한 범위 : trixbox ? ~ 2.8.0.4
공격 종류 : Path Traversal
웹 페이지 언어 : PHP
허니팟 같은(?) 서버를 열어서 웹 해킹은 요즘 어떤게 들어오나... 하면서 분석하고 있었는데 재밌는 로그가 있었다.
이거 보면서 curl 넣네 오 이건 뭘까 라는 생각이 들었다.
요즘 번아웃 친구가 찾아와서 아무것도 하기 싫었는데 로그 보니까 다시 삶의 활력을 되찾은것같다.
(위의 사진은 RCE 취약점이지만, Path Traversal 취약점도 있어 이번 포스팅은 Path Traversal 만 설명 한다.)
이제 분석을 시작 해보겠다.
이 취약점 같은 경우 trixbox 플렛폼에서 터지는 취약점인데, trixbox가 뭐냐?
trixbox는 최고의 오픈 소스 텔레포니 도구를 하나의 설치하기 쉬운 패키지로 활용하는 오픈 텔레포니 플랫폼입니다. 향상된 LAAMP (Linux, Apache, Asterisk, mySQL, PHP)를 기반으로하는 trixbox 대시 보드는 사용하기 쉬운 웹 기반 인터페이스를 제공하여 완전한 IP PBX 시스템을 설정, 관리, 유지 및 지원합니다.
라고 한다.
한마디로 한큐에 올리는 오픈소스 플랫폼 이라는 소리다.
현재 trixbox는 취약점이 해결되지 않고 개발이 중단되었다고 한다.
환경을 구성하기 위해 필요한 파일은 하단에 있는 주소에서 다운 할 수 있다.
https://sourceforge.net/projects/asteriskathome/files/trixbox%20CE/trixbox%202.8/
그럼 어디서 터지는 걸까?
"/maint/modules/home/index.php"에서 취약점이 발생을 하게 되는데,
lang 이라는 변수에서 입력값 검증 미흡으로 인해 발생을 한다.
lang에 해당하는 코드는 다음과 같다.
보면, GET 방식으로 lang 변수를 받게 되는데, 이 변수는 language를 변환하기 위해 사용하는 변수 같다.(영어, 프랑스어 등)
languageFile 이라는 변수에 'language/' + lang의 값 + '.php' 를 넣어주고, 만약에 파일이 있으면 include를 하게 된다.
파일이 없다면 아무것도 띄우지 않을 것이다.
이 코드에서 취약점이 터지는 곳은 $languageFile 부분의 $tbLang 에서 발생을 하게 된다.
GET 방식으로 입력 받은 것을 바로 처리를 하기 때문이다. (검증 X)
이 부분에서 Path Traversal 취약점이 발생을 한다.
근데, $tbLang 에서 파일을 읽을려고 lang=../../../../etc/passwd 이런식으로 넣어도 읽어지지 않는다. (뒤에 '.php'가 붙어있기 때문.)
그럼 공격 구문은 어떻게 만들까?
일단 첫번째로 우리는 lang 변수에 ../ 와 원하는 파일을 적어주면 된다는 것을 알 수 있다. 그러나 '.php' 를 우회해야하는데 ../../../../etc/passwd 에 %00 을 붙이면 실행이 된다.
lang=../../../../../../../../../../../../../../../etc/passwd%00
이렇게 넣으면 Path Traversal 취약점이 발생하게 된다.
URL에 보면 %00 뒤에 english 가 있지만, 없어도 괜찮다.
참고
http://www.wins21.co.kr/blog/blog-sub-01.html?t=31&num=2406
https://nvd.nist.gov/vuln/detail/CVE-2017-14537
https://secur1tyadvisory.wordpress.com/
https://www.voip-info.org/trixbox/
'CVE 분석' 카테고리의 다른 글
CVE-2022-26134 분석 (0) | 2022.06.04 |
---|---|
[CVE-2012-1823] 달로즈(Linux Darlloz) (0) | 2021.04.16 |
[CVE-2018-7600] Drupal 취약점 (Drupalgeddon2) (0) | 2021.04.14 |
[CVE-2017-9841] PHPUnit RCE 취약점 (0) | 2021.04.08 |
[CVE-2019-16759] ThinkCMF 취약점 (0) | 2021.04.08 |