近日BUGX平台收到一个基于POSCMS开发的交易所高危漏洞。此漏洞利用XSS(Cross Site Scripting)+CSRF(Cross-site request forgery)组合型通用漏洞,漏洞可把普通会员提升为交易所管理员权限,登录管理后台进行敏感操作。已导致多家交易所中招。
我们第一时间联系了框架开发人员,沟通无果,故发布本文章,希望厂商、用户们提高警惕。
在我们印象中XSS漏洞可以获取其他人账户Cookie或Token,但是要进一步利用漏洞就要多花一些心思了,下面介绍一个白帽子利用XSS+CSRF提升普通会员权限为管理员权限的方式,查找同源网站,可得到多个后台网站管理员账户。
在利用上述漏洞之前,白帽子通过其他方式拿到了某一网站后台管理员账户弱密码,在得到网站账户密码之后去深入测试一下网站的其他安全性。在申请实名认证的某处发现了一处XSS存储型漏洞。
在此网站POSCMS也对CSRF进行了防护,网站采用Referer进行防护,但是对于本身就是审核人员在审核会员消息时触发的恶意代码,所以Referer验证会被绕过。下图是对POSCM V3.2.0开源网站创建管理员所抓取的数据包。通过数据包可以看到对会员权限更改的数据包,当data[adminid]=1时是把普通用户权限更改成管理员账户,网站并未对CSRF做过多的防护,可以尝试伪造数据包对网站进行CSRF攻击。
转过来我们来看一下POSCM V3.2.0开源添加管理员账户的源码。在diy/dayrui/controllers/admin/Root.php的53行开始。可以看出,在创建管理员账户的时候逻辑是选择此会员属于那种权限,再判断执行操作的角色的权限是否能赋予此权限。然后判断会员是否注册,若未注册则注册会员。
在添加管理员对数据包中的会员名称、角色组和姓名进行了赋值。然后进行更新数据库。一个完整添加更新管理员就这样完成了:
回顾整个网站,有个可触发的XSS漏洞,同时网站更改会员权限也未对数据来源未进行彻底验证,存在CSRF漏洞。白帽子XSS+CSRF漏洞利用方式是在XSS漏洞处插入使普通会员升级为网站管理员权限的恶意代码,当网站审核人员审核会员信息时会触发XSS漏洞中的恶意代码进而执行恶意代码,对普通会员权限升级到管理员权限,登陆管理后台。
漏洞主要影响使用当前版本的POSCMS框架的网站。
同时受影响的平台,可在后台发现上万条的实名认证信息,影响极大。
使用google搜索找相似的交易所网站能发现大量的同源网站。这些网站几乎都存在这种漏洞。希望各个交易所厂商,谨慎选择网站开发厂商,如若发现平台漏洞及时修复,提升网站安全。用户们也应该注意使用的交易平台是否有安全风险,避免重要信息泄露。
*本文作者:BUGX,转载请注明来自FreeBuf.COM