MyCVE
  • Cylos
    • Cyclos 4.14.7 - Dom-based Cross-Site Scripting in undefined enum (CVE-2021-31674)
    • Cyclos 4.14.7 - Dom-based Cross-Site Scripting (CVE-2021-31673)
  • nopCommerce
    • Open Redirect on nopCommerce 4.50.1
    • Security issues in nopCommerce 4.50.1
  • SmartVista
    • SmartVista Cardgen
      • Reflected XSS in SmartVista Cardgen version 3.28.0 (CVE-2022-35554)
      • Path traversal in SmartVista Cardgen version 3.28.0 (CVE-2022-38613)
      • List all files in arbitrary folder in SmartVista Cardgen version 3.28.0 (CVE-2022-38614)
    • SmartVista SVFE2
      • SQL Injection in Service Group feature of SmartVista SVFE2 version 2.2.22 (CVE-2022-38615)
      • SQL Injection in Terminal Tariff Group feature of SmartVista SVFE2 version 2.2.22 (CVE-2022-38616)
  • CraftCMS
    • Server-Site Template Injection on CraftCMS 3.8.1
Powered by GitBook
On this page
  • CVE-2021-31673
  • Thông tin bên lề về lỗ hổng
  1. Cylos

Cyclos 4.14.7 - Dom-based Cross-Site Scripting (CVE-2021-31673)

PreviousCyclos 4.14.7 - Dom-based Cross-Site Scripting in undefined enum (CVE-2021-31674)NextnopCommerce

Last updated 3 years ago

CVE-2021-31673

Date: 17/04/2021

Author: Tin Pham aka TF1T of VietSunshine Cyber Security Services

Vendor Homepage: https://www.cyclos.org/

Version: Cyclos 4.14.7 (and prior)

Description: A Dom-based Cross-site scripting (XSS) vulnerability at registration account in Cyclos 4 PRO.14.7 and before allows remote attackers to inject arbitrary web script or HTML via the groupId parameter.

Steps to reproduce: An attacker sends a draft URL [IP]/#users.users.public-registration!groupId=1%27%22%3E%3Cimg%20src=x%20onerror=alert(document.domain)%3E to victim. When a victim opens the URL, XSS will be triggered.

Thông tin bên lề về lỗ hổng

Cách đây một năm, trong khi tham gia một chương trình Bug bounty ở Whitehub, target mà chương trình mình tham gia sử dụng một Banking Software có tên là Cyclos. Sau khi xem sơ lược các chức năng chính, mình nhận thấy tại chức năng đăng ký tài khoản khi giá trị tham số groupId không tồn tại thì xuất hiện thông báo lỗi đính kèm giá trị groupId mà ta nhập vào.

Vì thông báo lỗi có đính kèm giá trị mà ta nhập vào, rất có thể vị trí này tồn tại lỗ hổng XSS. Kiểm tra bằng cách chèn payload: <img src=xxx onerror=alert(document.domain)> vào tham số groupId

Để tìm source và sink của các lỗ hổng Dom-based XSS, ta sẽ chèn debugger vào payload và debug trên trình duyệt Chrome, xem thanh Call Stack, ta tìm được source và sink như sau:

source: location.hash tại cyclos.gwt-0.js1

function DGc() {
    var a;
    a = $wnd.location.hash;
    if (a == null || a.length == 0) {
        return ''
    }
    return JGc(a.substr(1))
}

sink: innerHTML tại cyclos.gwt-0.js1

function Ie(b, a) {
    b.innerHTML = a || ''
}

Và sau 1 năm chờ đợi mình có đã CVE đầu tiên. Cảm ơn các bạn đã đọc bài viết.

Xác nhận lỗ hổng Dom-based XSS