1.discuz forumdisplay.php 发贴只显示部分一楼贴内容遇到棘手问题
2.Discuz!ML 3.x任意代码执行漏洞之大佬分析之后我分析
3.有哪些比较不错的论坛源代码的网站?
4.求专家解答 Powerful JuteForum phpwind v8.0 Discuz! X1.5 这三款论坛怎么样,哪款好一点
discuz forumdisplay.php 发贴只显示部分一楼贴内容遇到棘手问题
在使用Discuz论坛时,您可能会遇到发帖只显示部分一楼贴内容的问题。为解决此问题,请提供所涉及文件或描述您在源代码中所进行的任何修改。版主已阅读相关信息。口袋账本源码
若问题涉及显示附件,确保附件的正确配置与上传。检查论坛配置文件和附件存储路径,确保无误。确认格式和大小符合论坛要求,同时,验证服务器是否能正确解析URL。若问题持续存在,尝试清空浏览器缓存或使用不同设备访问。
在版主进一步了解问题详细情况前,请提供具体步骤或错误信息。这将有助于快速定位问题所在。同时,检查您的网络连接,确保无中断或延迟导致的显示异常。对于任何定制代码或插件,请确保它们与Discuz版本兼容,且未引入冲突。
对于代码修改,请遵循最佳实践,如使用版本控制系统(如Git)管理和追踪更改。这不仅便于问题排查,emwin源码6也便于未来的维护和更新。在论坛代码中进行任何更改前,请备份原始文件,并在测试环境中验证修改的效果。
如果上述建议未解决问题,建议联系Discuz官方支持或社区寻求帮助。提供详细的错误信息、操作步骤以及任何相关日志,以便专家准确诊断并提供解决方案。在等待回复期间,尝试使用论坛内置的报告功能,让版主或管理员注意到问题的存在。
Discuz!ML 3.x任意代码执行漏洞之大佬分析之后我分析
首先附上米斯特安全大佬们文章的链接,刚开始有些东西我没看的太懂,于是我就再添了点东西,希望像我一样的小白也能看懂。
一、漏洞综述
漏洞类型:代码执行漏洞
影响系统及版本:Discuz!ML V3.2-3.4
漏洞原因:Discuz!ML 系统对cookie中的l接收的language参数内容未过滤,导致字符串拼接,从而执行php代码。
二、漏洞分析
根据米斯特大佬们提供的报错界面,我对其中的三个报错点一一进行了分析,三个报错点如下图所示(还有米斯特大佬们的水印)。
2.1 报错点一分析
发现首先是portal.php函数出错,把这张图放大看,发现是libiconv 源码6对cookie中的language参数进行拼接而导致的报错,根据这个参数的语义判断应该是调用语言模板的时候因为找不到相应的模板而发生的错误,那么先定位portal.php报错的第行,该文件路径:
紧接着定位libfile函数,文件加载路径函数。
函数介绍:
libfile($libname, $folder = ”),包含2个参数:$libname 和 $folder,该函数读取source目录下的$folder子目录作为基础部分。
libfile函数源代码如下图所示:
DISCUZ_ROOT为定义网站根目录的常量,realpath函数为返回绝对路径函数,到此处第一个报错就已经分析完毕,原因是系统因为找不到一个php文件而报的错。
2.2 报错点二分析
还是先根据错误定位到引用函数文件,文件路径source/module/portal/portal_index.php,然后定位到源函数所在的文件,引用的地方好定位,位置在/source/function/function_core.php,直接上图
然后这个函数写的还贼长,哎,没得办法,这个时候只能靠运气了,搏一搏,单车变摩托,首先百度,这个函数的作用也就是个调用模板的函数。
然而这个函数写了行代码,找个大表哥的写的代码注释吧,先扔个参考链接 discuz.net/thread-...
此时我发现了思路有些繁琐,源码分析意思然后就去找第三个错误的提示内容,为了找到是哪里出了问题,我把这段代码放到了txt文件中,根据第三个错误提示的信息开始了全文搜索,终于,根据关键字tpl.php值搜索到一处与language这个函数语义有关的东西DISCUZ_LANG。
既然是语言参数出了问题,还是个常量,那就去找找常量定义的地方,全局搜DISCUZ_LANG,跟踪到/source/class/discuz/discuz_application.php
可以看到,将$lng的值给了DISCUZ_LANG,追踪$lng在何处定义,全局搜索$lng,找到了定义$lng的地方(图中第一个箭头)
到此为止,又出现个var,这是个啥,我只知道var[‘cookie’][‘language’]的意思就是cookie中的language的值。
以上可以分析出,从获取language到DISCUZ_LANG拿到值的过程中,并没有对其进行过滤。
那么现在必须确定报错问题是怎么出现的了,看下图:
出现了这样的代码,直接拼接,然后RCE
拼接单引号和'.phpinfo().'
按理来说可以RCE
总结下大概流程从cookie中获取了language的值,然后给了$lng,接着$lng又给了DISCUZ_LANG,c 网站 源码系统通过template函数调用模板文件,template函数执行,执行到$cachefile的时候,执行构造的代码。
三、漏洞复现
访问站点www.***.com/forum.php,刷新页面抓包
*本文作者:xxx,转载请注明来自 FreeBuf.COM在language参数处'.phpinfo().'
返回内容:
复现成功。
看起来复现大佬们的漏洞还是挺有意思的,开心。
有哪些比较不错的论坛源代码的网站?
探索高质量的论坛源代码:四大专业平台推荐 在构建网站的旅程中,论坛源代码的选择至关重要。这里有四个备受推崇的开源平台,为你的网站开发提供强大支持:Discuz! - 一站式社区解决方案
Discuz!,由Comsenz公司精心打造,是PHP开源论坛领域的领军者。这款专业建站平台将BBS、SNS、门户、群组和开放平台融为一体,为网站提供全面的服务,无论是新手还是经验丰富的开发者,都能从中受益匪浅。DedeCms - 简单实用的PHP CMS
织梦CMS,以易用性和功能强大著称,是国内最受欢迎的PHP内容管理系统。DedeCms免费版专为个人站长设计,专注于中小型网站构建,尽管企业用户和教育机构也在广泛使用,但它的核心始终在于简单易用。帝国CMS - 稳定可靠的网站管理工具
帝国CMS以B/S结构和高效性见长,由帝国开发工作组独立开发。从早期的帝国新闻系统到如今的网站管理系统,它的功能革新令人瞩目,为网站搭建和管理带来了前所未有的便捷。phpCMS - 功能丰富的网站内容管理系统
phpCMS作为中国领先的网站管理软件,凭借模块化设计和众多功能,如文章管理、下载、展示、商城和采集等,为各类规模的网站提供强大且灵活的解决方案,是您打造个性化网站的理想选择。 无论你是寻求简洁易用的个人项目,还是需要强大功能的商业平台,这些论坛源代码平台都能满足你的需求。收藏起来,开始你的网站开发之旅吧!求专家解答 Powerful JuteForum phpwind v8.0 Discuz! X1.5 这三款论坛怎么样,哪款好一点
首先现在常见的是PW和DZ这两款,因为他们都是PHP源码,界面美观,功能繁多,很受大家喜爱
我最推荐DISCUZ X1.5,因为它很好操作,同时整合了DISCUZ所属公司康盛创想旗下的SUPERSITE,DISCUZ,UCENTER和UCENTERHOME(不清楚的可以百度一下)等产品,用来做大型社区最好不过了
其实三款程序各有长短,见仁见智.以上言论仅为本人观点,不代表他人立场
____________________________________________________________________
补充回答:
一、 语言比较
Php是解释执行的服务器脚本语言,首先php有简单容易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java的语法和熟悉一些核心的类库,懂得面向对象的程序设计方法。所以java不如php好学。
Java首先要编译成字节码.class文件,然后在java虚拟机上解释执行。Java的web开发首先最容易想到的就是JSP(现在已经到JSP2.0),原来的java的web开发都是用servlet来实现的,用servlet来开发需要程序员在java的源文件中嵌入大量的html代码。所以后来就出现了JSP,JSP可以方便的嵌入到html文件当中,其实jsp文件在服务器上执行的时候首先会被应用服务器转换成servlet,然后再编译执行。Jsp可以通过servlet和JavaBean的支持产生强大的功能。JavaBean 是一种可复用的、跨平台的软件组件。使用javabean可以方便的实现java代码和html的分离,能够增强系统的功能和软件的复用性。 Java的web开发属于SUN公司定义的J2EE其中的规范。而且在J2EE中包括了java的web开发的所有方面,如:JSP、Servlet、JDBC、JNDI、JAVABEAN、EJB等等。J2EE就特别适合于做大型的企业级的应用。
二、 数据库访问比较
Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库。访问数据库的接口比较统一。
PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。例如:用Java开发的web应用从MySQL数据库转到Oracle数据库只需要做很少的修改。而PHP则需要做大量的修改工作。
三、 系统设计架构比较
采用Java的web开发技术,需要使用的是面向对象的系统设计方法,而PHP还是采用面向过程的开发方法。所以用Java进行开发前期需要做大量的系统分析和设计的工作。 四、 跨平台性
Java和PHP都有很好的跨平台的特性。几乎都可以在不作任何修改的情况下运行在Linux或者Windows等不同的操作系统上。
五、 开发成本比较
PHP最经典的组合就是:PHP + MySQL + Apache。非常适合开发中小型的web应用,开发的速度比较快。而且所有的软件都是开源免费的,可以减少投入。
Java的web应用服务器有免费Tomcat、JBoss等,如果需要更好的商业化的服务有:Web Sphere和 Web logic。
六、 分布式多层架构比较
PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就比较强大,可以实现多层的网络架构。数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。例如Struts就是利用java的web开发技术实现了MVC的设计模式,而在业务逻辑层也有Spring框架,数据库持久化层有Hibernate等框架。这些框架可以方便开发者高效、合理、科学得架构多层的商业应用。
下面简要的说一下Struts,它实质上是在JSP Model2的基础上实现的一个MVC(Model、View、Controler)框架。JSP Model2体系结构是一种联合使用JSP 与Servlet 来提供动态内容的方法。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由Servlet实现的,视图由一组JSP文件组成。采用Struts可以明确角色的定义和开发者与网页设计者的分工。而且项目越复杂,其优势越明显。
七、 源代码安全
PHP开发的程序的源代码都是公开的,他人拿到php开发的程序后都可以进行修改。
Java开发的程序,最后用户拿到的是只是一些编译好的class类,无法看到完整的源代码,安全性高。
八、性能比较
有人做过试验,对这两种种语言分别做回圈性能测试及存取Oracle数据库测试。
在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了*的回圈。而PHP测试的是*循环(少一个数量级),却分别用了秒。
数据库测试中,二者分别对 Oracle 8 进行 次 Insert,Update,Select和Delete: JSP 需要 秒,PHP 需要 秒。
表格 1 PHP 与Java的比较
PHP JAVA
可复用性 低 高
开发速度 快 慢
易维护性 差 优
可移植性 优-Linux、Windows、Unix等
安全性 低 高
开发费用 低 高
多层架构 差 优
数据库访问 接口不统一 接口统一
可扩展性 差 优
面向对象 差 优
综上所述,我个人认为,PHP适合于快速开发,中小型应用系统,开发成本低,能够对变动的需求作出快速的反应。而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。还有,同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高.