siteserver / cms

SS CMS 基于 .NET Core,能够以最低的成本、最少的人力投入在最短的时间内架设一个功能齐全、性能优异、规模庞大并易于维护的网站平台。
https://sscms.com
GNU Affero General Public License v3.0
3.65k stars 1.2k forks source link

V7.2.1 反馈3个后台管理BUG,涉及:存储型XSS,任意文件上传,物理路径泄露 #3675

Open sr6783 opened 10 months ago

sr6783 commented 10 months ago

存储型 XSS

全局修复,以下为两处举例: 172.0.0.1/api/admin/cms/editor/actions/update 第一处: 使用管理员账号登录后台,信息管理->内容管理,点击编辑: image

编辑标题,以html形式编辑内容,保存为测试使用的XSS语句,点击发布。 image

访问刚刚编辑的内容,触发XSS image image image

第二处: 127.0.0.1/api/admin/cms/channels/channels/actions/append 栏目管理,编辑栏目,在栏目名称写上测试语句 image

点击生成后,访问栏目链接,触发XSS image image

任意文件上传

资源文件管理,上传样式文件 */api/admin/cms/templates/templatesAssets/actions/upload?siteId=1&fileType=aspx&directories= image

修改后缀参数即可任意文件上传 image

物理路径泄露

image 点击上传,抓取数据包,发现泄露了物理路径信息。 image

starlying commented 10 months ago

收到,多谢反馈,我们会尽快修复

sr6783 commented 10 months ago

@starlying 请问下,修复进展如何了

starlying commented 10 months ago

修复中,我们尽快

sr6783 commented 10 months ago

这周可以修复吗?

------------------ 原始邮件 ------------------ 发件人: "siteserver/cms" @.>; 发送时间: 2023年8月28日(星期一) 上午8:25 @.>; @.**@.>; 主题: Re: [siteserver/cms] V7.2.1 反馈3个后台管理BUG,涉及:存储型XSS,任意文件上传,物理路径泄露 (Issue #3675)

收到,多谢反馈,我们会尽快修复

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

starlying commented 10 months ago

任意文件上传和物理路径泄露已经修复了,存储型 XSS应该不会修改,后台是无法防止XSS的,管理员可以直接修改模板或js文件。

sr6783 commented 10 months ago

修复内容管理/栏目管理中标题、副标题..这些字段的存储型XSS应该可行吧?或者像安全模式“过滤内容编辑器中的 JS/CSS 代码”一样,过滤内容管理、栏目管理中包括标题、副标题等字段的JS/CSS代码

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2023年9月6日(星期三) 上午8:34 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [siteserver/cms] V7.2.1 反馈3个后台管理BUG,涉及:存储型XSS,任意文件上传,物理路径泄露 (Issue #3675)

任意文件上传和物理路径泄露已经修复了,存储型 XSS应该不会修改,后台是无法防止XSS的,管理员可以直接修改模板或js文件。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

starlying commented 10 months ago

好的,我们再研究一下

sr6783 commented 10 months ago

请问下研究进展如何, 是维持现状, 还是直接过滤内容管理、栏目管理中包括标题、副标题等字段的JS/CSS代码, 还是在安全模式下过滤内容管理、栏目管理中包括标题、副标题等字段的JS/CSS代码?

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2023年9月11日(星期一) 上午9:40 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [siteserver/cms] V7.2.1 反馈3个后台管理BUG,涉及:存储型XSS,任意文件上传,物理路径泄露 (Issue #3675)

好的,我们再研究一下

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

starlying commented 10 months ago

暂时维持现状,我们会继续研究,找找更合适的方案

fsea commented 9 months ago

暂时解决办法: src\SSCMS.Core\Services\PathManager.Content.cs的public async Task EncodeContentAsync(Site site, Channel channel, Content content)方法中添加: else if (style.InputType == InputType.Text || style.InputType == InputType.TextArea) { var value = content.Get(style.AttributeName); value = StringUtils.FilterSqlAndXss(value); content.Set(style.AttributeName, value); }

fsea commented 9 months ago

else if (style.InputType == InputType.TextEditor) 里content.Set前一行加上 value = StringUtils.FilterSqlAndXss(value);