본문 바로가기

Web

[Hacktivity] Arbitrary file read via ffmpeg HLS parser at https://www.flickr.com/photos/upload(https://www.flickr.com/photos/upload에서 ffmpeg HLS 파서를 통해 임의 파일 읽기)

Summary: FFmpeg is a video and audio software that is used for generating previews and for converting videos. Your current installation allows HLS playlists that contain references to external files, which leads to local file disclosure.

Steps to Reproduce:
1.Download the attached file. READ__etc_passwd.avi (F413554)

2.Go to https://www.flickr.com/photos/upload/ and upload the attached file.

3.Now go to https://www.flickr.com/cameraroll and you should be able to see contents of /etc/passwd.

 

 

해당 취약점은 flickr.com에서 발생하였다. 바운티는 $2,000을 수령하였고 제보자는  FFmpeg 타입에서 HLS 파서를 통해 임의의 파일을 읽는것을 증명하였다. 1번에 명시되어있는 파일을 다운로드 받아 내용을 살펴보면 다음과 같은 내용이 존재한다. 

POC 파일

 

해당 파일은 EXTINF:1.0 밑에 임의의 코드를 삽입하였고 해당 사이트는 삽입한 코드를 읽어들여 실행한것으로 보인다. 

여기서 사용된 단어 중 HLS는 HTTP Live Streeaming 을 의미한다(HLS는 애플에서 만들어졌다고 한다)  

 또한 박스내부에서 사용된 m3u 라는것은 멀티미디어 재생목록의 파일 포맷이며 , 하나, 또는 여러 개의 미디어 파일의 패스 플레인 텍스트(텍스트 파일)로 기재한 것이다. 이 파일을. ".m3u" 또는 ".m3u8"의 확장자로 저장한다.

  • 절대 경로(예시: C:\My Music\Heavysets.mp3)
  • 상대 경로 (예시: Heavysets.mp3)
  • URL

(출처:https://ko.wikipedia.org/wiki/M3U

 

또한 m3u는 여러가지의 메타데이터를 지원하는데 그 목록은 다음의 주소에서 확인할 수 있다.

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

https://d2.naver.com/helloworld/7122

 

일단 위의 POC에서 사용된 메타데이터는 다음과 같다.

1) EXTM3U

    - 파일 헤더, 파일의 첫 번째 행이어야한다.

2) EXT-X-MEDIA-SEQUENCE:0

    - 제일 먼저 플레이해야하는 파일의 일련번호이며 명시되지않으면 0부터 진행된다.

3) EXTINF

   - 이 지시어의 다음에 명시된 콘텐츠의 재생 시간과 제목을 명시한다

4) EXT-X-ENDLIST

   - 매개변수가 없는 최종 종료 지점

 

해당 파일에서는 /etc/passwd를 불러오는 모습을 확인 할 수 있다.

또한 파일을 로드하는것외에도 URL을 삽입 시킬 수도 있다. SSRF 공격 또한 가능한것이다. 해당 자료는 다음의 주소에서 확인 할 수 있다. (25번째 슬라이드) 

https://www.blackhat.com/docs/us-16/materials/us-16-Ermishkin-Viral-Video-Exploiting-Ssrf-In-Video-Converters.pdf

불러오는 중입니다...

 

'Web' 카테고리의 다른 글

Fiddler Inspectors(response tab) 주석모음, beautifier  (0) 2019.11.28
php 5.3+ 에서 strcmp 구문 0 리턴  (0) 2019.10.15