政务公开系统专栏首页的跨站攻击漏洞

本文介绍了在一次系统扫描中发现的跨站攻击漏洞及其原因,分析了错误页面显示错误堆栈导致的问题,并提供了两种解决方案。

概述

     前段时间,顺义区对我们的专栏系统进行了扫描,扫描出了几个漏洞,大部分是因为我们使用了默认配置,没有对一些安全选项进行设置。比如jmx-console、web-console等的默认不用密码就能登录,查看系统配置等。还有就是普元的EOS配置的项目中有一个axis和axis2两个Web模块,这两个模块中都有一个happyaxis.jsp的页面,这两个页面也会显示系统的配置信息。这些错误只需要将对应的页面删掉,或者去掉这些web模块就可以了。一个比较明显的漏洞就是跨站攻击的漏洞。

问题分析

     这个跨站攻击的漏洞是访问一个地址,参数中包含了一些js脚本,因为参数错误,会转到错误页面,在错误页面中执行了对应的js脚本。

     原来在EOS的错误页面中会显示错误信息,将错误堆栈都显示出来了。这个错误信息客户早就提出来说应该更友好一些,我们考虑的也就是把错误信息隐藏起来,开始想的是为了方便开发人员获得错误信息,加了一个按钮“显示详细错误信息”,点击该该按钮,显示错误错误堆栈。

     这个错误堆栈是通过普元的eos:error标签显示的,后来发现是因为这个标签没有对输出的内容进行过滤,而是直接将错误内容显示在页面上,而造成了跨站攻击的错误,形成现象如下:

     在输入参数中有一个值的后面被加上了如下代码:<img%20src%3D%26%23x6a;%26%23x61;%26%23x76;%26%23x61;%26%23x73;%26%23x63;%26%23x72;%26%23x69;%26%23x70;%26%23x74;%26%23x3a;alert(27944)>

     在错误提示页面中会提示输入的某个参数值是xxx(其中包含了上面的脚本),因此在页面上就执行alert脚本了。

解决方案

     要解决该问题有两个解决方案:

     1. 在错误页面上只提示系统发生了错误,而不要将错误信息显示出来。

     2. 改造普元的eos:error标签,将异常信息进行过滤。

          2.1 普元公司改造自己的标签

          2.2 扩展普元的标签,用自己的标签来替换

     因为发生错误都是通过分析日志,而且客户看到错误信息根本没用,因此我们选中了第一个解决方案。

经验总结

     使用自定义标签或者编写servlet往页面上输出内容的时候,不能直接将某些变量的值直接输出到out中,而应该对内容进行过滤,然后输出到页面上。

转载于:https://www.cnblogs.com/liwp_Stephen/archive/2008/08/04/1260154.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值