### 漏洞概述 - **漏洞类型**:反射型XSS(跨站脚本攻击) - **漏洞编号**:#3892 - **状态**:已开放(Open) - **报告者**:hss94531 - **编辑者**:hss94531 - **报告时间**:上周 ### 影响范围 - **受影响组件**:SSCMS v7.4.0 - **受影响权限**:SQLite + administrator (security_key) 权限 - **漏洞详情**: - SSCMS组件在未认证状态下接收加密参数,解密后解析STL模板内容,直接返回HTML。 - 模板中的`@yield`内容未对XSS或HTML编码进行过滤,直接输出到HTML字段。 ### 修复方案 - **当前状态**:无修复方案(No projects) - **建议措施**: - 对模板中的`@yield`内容进行XSS或HTML编码过滤。 - 确保所有用户输入在输出到HTML前进行适当的编码处理。 ### POC代码 ```csharp var value = ListUtils.GetValueByLowerCase(contextInfo.ItemContainer.SqlItem.Value, ty); if (value != null) { parsedContent = string.Format(format, value); } if (string.IsNullOrEmpty(queryString)) { if (string.IsNullOrEmpty(connectionString)) { connectionString = ConfigurationManager.ConnectionStrings["Database.ConnectionString"]; } // parsedContent = GlobalSettings.DatabaseRepository.GetQueryString(connectionString, queryString); parsedContent = parseManager.DatabaseManager.GetQueryString(connectionString, queryString); } ``` ### 利用示例 ```plaintext Status: 200 Response: {"value":true,"html":"alert(\"XSS\")"} Process finished with exit code 0 ``` ### 其他信息 - **Assignees**:无 - **Labels**:无 - **Type**:无 - **Projects**:无 - **Milestone**:无 - **Relationships**:无 - **Development**:无分支或拉取请求 - **Participants**:无