JspRun!是北京飞速创想科技有限公司推出的一套通用社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。JspRun!的基础架构采用世界上最先进流行的web编程组合JAVA+MySQL实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。系统采用struts、hibernate框架及中间件的结合,既实现了业务逻辑与控制逻辑的有效分离,提高了层次结构的清晰度,提高了复用的粒度,降低了开发代价和维护代价,同时保证了软件的质量,使其更具有鲁棒性和可维护性。它可以运行在Windows环境下,也可以运行在Linux环境下,具备跨平台特性,可以运行于Linux/FreeBSD/Unix/SunOS及微软Windows2000/2003等各种操作系统环境下。网上提供一键安装Linux和Windows版本,通过实际使用,其基本是模仿Discuz!论坛风格。目前网上也有大量的用户使用该程序来搭建社区论坛等应用。
本文为网络安全技术研究记录,文中技术研究环境为本地搭建或经过目标主体授权测试研究,内容已去除关键敏感信息和代码,以防止被恶意利用。文章内提及的漏洞均已修复,在挖掘、提交相关漏洞的过程中,应严格遵守相关法律法规。
本文主要就如何在获取管理员的情况下获得Webshell,关于如何获得管理员的密码不在本文讨论的范围。下面就具体介绍如何在获得管理员帐号的情况下获得Webshell。
进入系统后台
登录后台成功后,单击“论坛管理”进入系统设置首页,如图1所示。JspRun!论坛程序可以直接输入后台管理地址进行登录,与Discuz!
论坛管理稍微有些区别。
图1进入后台设置
通过“模板编辑”增加新的模板在系统设置首页中,单击“模板编辑”,可以看到系统默认的五套模板:默认模板套系、喝彩奥运、深邃永恒、粉状精灵和2008year,在最后新增一套模板,模板名称可以随意取,在本例中取名为“111”,所在目录设置为已经存在的目录“./include”,然后单击“提交”完成模板编辑。如图2所示。
图2创建新模板
在模板中创建新的文件
在模板维护中可以看到有绿色字体显示的“jsprun_vion”以及“test”,单击该项目可以进行编辑,也可以新增模板文件,如图3所示,输入模板名称为“shell”,单击“提交”,并在shell模板文件中粘贴shell文件中的代码,保存后即可获取shell。
测试并访问shell
Shell地址跟模板目录有关,地址为网站地址+模板目录+模板文件名称,如图4和图5所示。如果出现文件访问出错信息,有可能是代码文件存在问题,建议使用“jspFileBrowser”文件管理器。
JspRun!论坛其它相关漏洞
根据网上公布的漏洞线索,JspRun!论坛管理后台的export变量没有过滤,直接进入查询语句,导致进行后台,可以操作数据库,获取系统权限。在处理后台提交的文件中ForumManageAction.java第1940行:
Stringexport=request.getParameter(export);//直接获取,没有安全过滤
if(export!=null){
ListMapString,String
styles=dataBice.executeQuery(SELECT
s.name,
s.templateid,t.nameAStplname,t.directory,t.copyrightFROMjrun_stylessLEFTJOIN
jrun_templatestONt.temeid=s.templateidWEstyleid=+export+);//进入查询语,执行了...
f(styles==null||styles.size()==0){
测试方法:/admincp.jsp?action=stylrt=1and1=2unioelect1,2,3,4,user()--and=
笔者就JspRun!论坛2010版本程序进行实际测试,在测试过程中遇到两种情况,一种情况是提示用户无管理权限,拒绝执行;另外一种情况则是下载一个style文件。文件内容如图6所示。
图6Style文件内容