100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > CSZ CMS 1.2.7 用户私信XSS漏洞复现+审计+修复建议

CSZ CMS 1.2.7 用户私信XSS漏洞复现+审计+修复建议

时间:2022-04-06 18:21:28

相关推荐

CSZ CMS 1.2.7 用户私信XSS漏洞复现+审计+修复建议

CSZ CMS 1.2.7 用户私信XSS漏洞复现+审计+修复建议

前言0x01 环境准备0x02 环境搭建0x03 漏洞复现0x04 源码审计0x05 修复建议0x06 总结

前言

CSZ 是外国的一个开源的CMS,使用PHP作为后端语言,MYSQL或MariaDB(MySQL的一个分支数据库,两者的历史感兴趣的可以去看一下。知乎:Mariadb和mysql是什么关系?)。普通用户可以通过此漏洞,在发送私信功能中向管理员的管理页面植入前端脚本。


0x01 环境准备

csz: 1.2.7版本

(下载地址:/projects/cszcms/files/install/CSZCMS-V1.2.7.zip/download)php:5.5.0以上版本

0x02 环境搭建

打开cms目录,配置提示环境。(我这里提示PHP版本不够高)

按要求配置好环境后,下一步要求填写一些重要的数据,数据库名和用户名密码,管理员账户密码等。(需提前在数据库建好需要的库)

3.初始化完成。

0x03 漏洞复现

打开主页,点击右上方的一个人头图标,先注册一个用户。

注册完成后登录用户,进入用户主页,在Private Message(私信)选项中点击inbox。 点击"New Message",发信息给管理员,抓包。

在抓到的包中,修改"User-Agent"的内容,插入一个js代码。

打开后台管理员页面"(cms目录名)/admin",登录后触发js的弹窗。

查看管理员主页,发现触发点,在收件信息中引用了"User-Agent"的值,且没有被过滤,另一条信息中,js代码直接写在了信息内容上,但是<script>标签被过滤了,没有触发。

0x04 源码审计

关键是在system/core/Input.php文件中,在将数据导入数据库时,没有对"User-Agent"的内容进行XSS过滤:$xss_clean = NULL

而且在管理首页中也直接调用了数据库中"User-Agent"的值并显示。

文件位于:cszcms/views/admin/home.php

此漏洞更详细的源码分析建议参考:/0daybug/p/12914695.html

0x05 修复建议

在home.php中去掉对"User-Agent"值的显示。更新cms版本1.2.8以上版本已修复了此问题。

0x06 总结

通过此次复现,理解到任何上传的值都有可能成为XSS的攻击点,最好对有可能回显的数值都进行过滤。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。