整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

「分析」Discuz 3.4 越权登陆漏洞分析

「分析」Discuz 3.4 越权登陆漏洞分析

Discuz是一个通用的社区论坛软件系统。最近看到一个Discuz逻辑漏洞,该漏洞源于Discuz微信登陆功能。Discuz 3.4默认安装了微信登陆。利用这个漏洞攻击者可以越权登陆论坛其他会员的账号甚至是管理员账号,主要还得看脸。

原理

首先看了下作者的描述,“如果有用户点了一下绑定微信,但是并没有绑定” 这句话说的很模糊,开始没有明白什么意思。然后跟进代码看了一下。

漏洞源码位于/upload/source/plugin/wechat/wechat.inc.php文件中。在226-246行:

主要看下代码的逻辑:

第231行:从common_member_wechatmp表查询对应openid的第一条结果,这里openid可以由用户控制。

$mpmember=C::t('#wechat#common_member_wechatmp')->fetch_by_openid($wxopenid ? $wxopenid : $_GET['wxopenid']);

下面是fetch_by_openid函数。

232行:从common表中取出对应uid的所有结果,array_keys($mpmember)返回的是上一步查询数据的uid值。

$mpmembers=C::t('common_member')->fetch_all(array_keys($mpmember));

234-237行:

取上一步的第一条数据,然后从common_member_archive表里取出对应uid的用户数据,将该用户设置为登录状态。

$memberfirst=array_shift($mpmembers);
$member=getuserbyuid($memberfirst['uid'], 1);
if($member) {
 setloginstatus($member, 1296000);

根据上述逻辑,也就是说只要知道用户的openid就能登陆用户的账号。看了下微信接口文档,这个openid是唯一的,并且只有用户授权了之后,公众号才可以获取。这里显然得不到openid。

在作者的payload中没有看到openid参数。

其实这个Payload只是登陆了openid为空的第一个用户。openid为空的情况目前发现通过/plugin.php?id=wechat:wechat&ac=wxregister&username={name}这种方式可以使openid为空,但注册的是一个新的账号。

根据作者所说 “如果有用户点了一下绑定微信,但是并没有绑定,会写入common_member_wechatmp”,这里“并没有绑定”的意思就是绑定失败,openid为空,但作者使用的何种绑定方法说的很模糊。

第二个是越权解除指定uid绑定的微信。同样在webchat.inc.php,判断csrftoken正确后,删除common_member_wechatmp表中对应uid的数据。

根据以上两个洞,可以遍历并且登陆所有openid为空的账户。先登录第一个openid为空的账号->然后解绑->再登陆之后即为第二个openid为空的用户……,脸好的话是可以登陆admin的。

payload

解除指定uid绑定的微信:/plugin.php?id=wechat:wechat&ac=unbindmp&uid={uid}&hash={formhash}

登陆第一个openid为空的账号:/plugin.php?id=wechat:wechat&ac=wxregister

修复

在最新版本中作者删除了这段代码。下载最新版即可。

参考

https://gitee.com/ComsenzDiszuz/DiscuzX/issue/IPRUI


本文由白帽汇原创,转载请注明来源:https://nosec.org/home/detail/2256.html

白帽汇从事信息安全,专注于安全大数据、企业威胁情报。

公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-安全讯息平台。

为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。

丢雷~

【百度云 http://pan.baidu.com/s/1o7KF42e acsw】

正所谓上战靠“兵器”,想要更加顺手使用discuz建站的小伙伴们不妨练练基础能力,前台页面效果需要懂得html、css、js,数据传输则需要懂得php,如果能了解精通设计技能便可以一个人独立完成网站的深入搭建。

小弟不才~╮(╯▽╰)╭~哎,设计出身半路闯入程序世界从此深陷其中,“不会敲代码的设计师不是好前端”哈哈哈。

进入正题:如上撒出的教程是基础PS教程专治页面效果图片处理等等疑难杂症,有兴趣的小伙伴们看看绝对是好的~

Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件。

Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑工作。ps有很多功能,在图像、图形、文字、视频、出版等各方面都有涉及。

评论区里留下邮箱我会将Adobe大师版设计安装包以及PS CC安装包(可以选择安装Adobe全家福或者单独安装PS CC)发到你的邮箱~

咱下期见

行外人来讲,在预备做一个网站项目时,最想了解的无非就是网站制作的悉数流程。网站制作是要有计划的,事先策划好才能更快更好的完成。网站的几个基本组成元素:域名+空间+程序+模板+维护经验+日常管理.网站建设 是一个综合性的技巧,小说网站也不例外,这个就像种菜,并不是说看个操作流程就一定会种菜,还要土壤,水肥,气候,直接间接的相关知识都做足够的了解,才能真正去操作,最终还要一个好的服务商。下面为大家介绍几点网站制作最基本的要求:

第一阶段:开始时最好是学些网页编辑软件和基础网页脚本语法,如:Dreamweaver软件,HTML语法(百度一下:HTML入门),CSS语法(百度一下:CSS入门),这样可以使您更了解网页制作与运营的原理。最好是拿本教程来学学,结合教程边学习边制作,这最多花你一周时间,如果有时间再学点javascript脚本语法(百度一下:javascript入门)。

第二阶段:会用网页制作软件和基础语法后,已会可以制作一个较完整的网站了。当然为了让网站做得更漂亮,功能更强大,你就需要学一些动态编程语言,常用的有ASP,PHP和ASP.NET,推荐后两种,应为ASP再过一段时间会被淘汰,后两种程序区别自己上网搜索吧,本人更倾向于学习.NET,面向对象,功能太强了,微软的东西就是强悍。

如果你没有精力去学这些复杂动态编程语言,你完全可以利用现成的网站管理系统(实际也叫建站软件,比如PageAdmin系统、shopex系统、discuz系统等都比较优秀),这也是目前比较流行的方法,省时、省力。

第三阶段:结合你自己已掌握地知识来开发网站,可以开发出别人给你定义的目标网站。到了这个时候,你就成为真正的网站开发者了。

怎样制作网页,不是说一两篇文章能够说清楚的。以上介绍的是制作网页的主要纲要和一些捷径,希望能够给想要学习制作网页的朋友一个参考。

{img2}

工具

1 、网页做好了肯定是要发表上网的,所以必须先申请一个空间;免费的空间不是很稳定,容量又小,也不好申请,建议到服务器公司先买一个个人空间,大概有个20M 以上的就可以了,当然也可以在自己电脑上安装IIS来模拟服务器运行(这里不详细说了,有兴趣的朋友百度一下相关知识,这个是很容易的)

2 、图片处理软件推荐firework或photoshop,HTML编辑软件推荐Dreamweaver,当然如果你会HTML语法,那用计事本直接编辑会更高效。

教程

花点时间,找个比较通俗易懂的教程看一看是很有必要的。每个网页的组成,不外是文字、表格、图、动画还有就是背景音乐等几个大的元素,搞清楚如何将这些元素摆放进去,你也就算懂得如何制作网页了。

制作

开始时建议去下载一个比较简单的网页,在制作软件中将它打开,然后仔细观察人家的网页的构成,模仿它去填充各种元素,实践中再配合着教城,进度会快很多,记得也牢一些。

其实做网页并不难,但要做出有特色的网页来,那就非一朝一夕之功了。

一点个人的粗浅体会,不妥之处敬请指正。

{img3}

网站设计八步骤

由于目前所见即所得类型的工具越来越多,使用也越来越方便,所以制作网页已经变成了一件轻松的工作,不像以前要手工编写一行行的源代码那样。一般初学者经过短暂的学习就可以学会制作网页,于是他们认为网页制作非常简单,就匆匆忙忙制作自己的网站,可是做出来之后与别人一比,才发现自己的网站非常粗糙,这是为什么呢?常言道:“心急吃不了热豆腐”。建立一个网站就像盖一幢大楼一样,它是一个系统工程,有自己特定的工作流程,你只有遵循这个步骤,按部就班地一步步来,才能设计出一个满意的网站。

一、确定网站主题

网站主题就是你建立的网站所要包含的主要内容,一个网站必须要有一个明确的主题。特别是对于个人网站,你不可能像综合网站那样做得内容大而全,包罗万象。你没有这个能力,也没这个精力,所以必须要找准一个自己最感兴趣内容,做深、做透,办出自己的特色,这样才能给用户留下深刻的印象。网站的主题无定则,只要是你感兴趣的,任何内容都可以,但主题要鲜明,在你的主题范围内内容做到大而全、精而深。

二、搜集材料

明确了网站的主题以后,你就要围绕主题开始搜集材料了。常言道:“巧妇难为无米之炊”。要想让自己的网站有血有肉,能够吸引住用户,你就要尽量搜集材料,搜集得材料越多,以后制作网站就越容易。材料既可以从图书、报纸、光盘、多媒体上得来,也可以从互联网上搜集,然后把搜集的材料去粗取精,去伪存真,作为自己制作网页的素材。

三、规划网站

一个网站设计得成功与否,很大程度上决定于设计者的规划水平,规划网站就像设计师设计大楼一样,图纸设计好了,才能建成一座漂亮的楼房。网站规划包含的内容很多,如网站的结构、栏目的设置、网站的风格、颜色搭配、版面布局、文字图片的运用等,你只有在制作网页之前把这些方面都考虑到了,才能在制作时驾轻就熟,胸有成竹。也只有如此制作出来的网页才能有个性、有特色,具有吸引力。如何规划网站的每一项具体内容,我们在下面会有详细介绍。

四、选择合适的制作工具

尽管选择什么样的工具并不会影响你设计网页的好坏,但是一款功能强大、使用简单的软件往往可以起到事半功倍的效果。网页制作涉及的工具比较多,首先就是网页制作工具了,目前大多数网民选用的都是所见即所得的建站系统软件(前面提到的网站管理系统)。除此之外,还有图片编辑工具,如firework 、Photoshop 等;动画制作工具,如Flash等;网上有许多这方面的软件下载,你可以根据需要灵活运用。

四、明确网站主题和内容

1、首先确定你要制作的网页的主题,就是你建这个网站的内容是什么

2、确定你的网页的阅读对象,就是你的网页是准备给那些人看的;

3、选择制作网页的工具软件,比如PageAdmin系统、shopex系统、discuz系统这些,当然还有很多优秀软件,大家可以在以后慢慢接触到。

4、如果你作好了页面,就需要考虑你的网页放到什么地方发表,也就是平常我们说的发表空间,我们学校的用户网络中心已经申请好了空间,大家可以直接使用(有发布空间的标志是你有了FTP 账号,这个需要申请),也可以按我前面说的把自己电脑配置为服务器(需安装IIS等软件,这个自己百度一下)

五、制作网页

材料有了,工具也选好了,下面就需要按照规划一步步地把自己的想法变成现实了,这是一个复杂而细致的过程,一定要按照先大后小、先简单后复杂来进行制作。所谓先大后小,就是说在制作网页时,先把大的结构设计好,然后再逐步完善小的结构设计。所谓先简单后复杂,就是先设计出简单的内容,然后再设计复杂的内容,以便出现问题时好修改。在制作网页时要多灵活运用网站管理系统后台功能,这样可以大大提高制作效率。

{img5}

六、上传测试

网页制作完毕,最后要发布到Web 服务器上,才能够让全世界的朋友观看,现在上传的工具有很多,推荐LeapFTP软件,你可以很方便地把网站发布到自己制作的网站存放服务器上。网站上传以测试完毕就可以把你的网址告诉给朋友或客户,让他们来浏览。

七、推广宣传

网页做好之后,还要不断地进行宣传,这样才能让更多的朋友认识它,提高网站的访问率和知名度。推广的方法有很多,例如到搜索引擎上注册、与别的网站交换链接、加入广告链等。

八、维护更新

网站要注意经常维护更新内容,保持内容的新鲜,不要一做好就放在那儿不变了,只有不断地给它补充新的内容,才能够吸引住浏览者。

学习可以找我基础资料全套 还有国内主流的SEO大咖的视频教学,真羡慕,我们以前可没手把手的视频教学。微信公众号搜索:李昉互联网营销,就可以获取学习资源。