欢迎来到皮皮网官网

【拾光日历源码】【礼物打印源码软件】【皖北互动源码网】discuzX 源码分析

时间:2024-12-24 03:11:00 来源:医院体检预约源码

1.求专家解答 Powerful JuteForum phpwind v8.0 Discuz! X1.5 这三款论坛怎么样,码分哪款好一点
2.Discuz!ML 3.x任意代码执行漏洞之大佬分析之后我分析
3.discuz整站源代码|discuz3.2精仿仿魔客吧整站源代码(GBK,码分带数据)

discuzX 源码分析

求专家解答 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等框架。这些框架可以方便开发者高效、合理、nginx源码分析2科学得架构多层的商业应用。

        下面简要的说一下Struts,它实质上是在JSP Model2的基础上实现的一个MVC(Model、View、Controler)框架。JSP Model2体系结构是一种联合使用JSP 与Servlet 来提供动态内容的方法。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由Servlet实现的,视图由一组JSP文件组成。采用Struts可以明确角色的定义和开发者与网页设计者的分工。而且项目越复杂,其优势越明显。

        七、 源代码安全

        PHP开发的程序的源代码都是公开的,他人拿到php开发的程序后都可以进行修改。

        Java开发的程序,最后用户拿到的是只是一些编译好的class类,无法看到完整的源代码,安全性高。

        八、性能比较

        有人做过试验,对这两种种语言分别做回圈性能测试及存取Oracle数据库测试。python网页操作源码

        在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了*的回圈。而PHP测试的是*循环(少一个数量级),却分别用了秒。

        数据库测试中,二者分别对 Oracle 8 进行 次 Insert,Update,Select和Delete: JSP 需要 秒,PHP 需要 秒。

        表格 1 PHP 与Java的比较

        PHP JAVA

        可复用性 低 高

        开发速度 快 慢

        易维护性 差 优

        可移植性 优-Linux、Windows、Unix等

        安全性 低 高

        开发费用 低 高

        多层架构 差 优

        数据库访问 接口不统一 接口统一

        可扩展性 差 优

        面向对象 差 优

        综上所述,我个人认为,PHP适合于快速开发,中小型应用系统,开发成本低,能够对变动的需求作出快速的反应。而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。还有,同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高.

Discuz!ML 3.x任意代码执行漏洞之大佬分析之后我分析

       首先附上米斯特安全大佬们文章的链接,刚开始有些东西我没看的太懂,于是我就再添了点东西,希望像我一样的小白也能看懂。

       一、漏洞综述

       漏洞类型:代码执行漏洞

       影响系统及版本:Discuz!ML V3.2-3.4

       漏洞原因:Discuz!ML 系统对cookie中的l接收的language参数内容未过滤,导致字符串拼接,从而执行php代码。

       二、漏洞分析

       根据米斯特大佬们提供的报错界面,我对其中的三个报错点一一进行了分析,三个报错点如下图所示(还有米斯特大佬们的水印)。

       2.1 报错点一分析

       发现首先是portal.php函数出错,把这张图放大看,发现是对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,系统通过template函数调用模板文件,template函数执行,执行到$cachefile的时候,执行构造的代码。

       三、漏洞复现

       访问站点www.***.com/forum.php,刷新页面抓包

       *本文作者:xxx,转载请注明来自 FreeBuf.COM在language参数处'.phpinfo().'

       返回内容:

       复现成功。

       看起来复现大佬们的漏洞还是挺有意思的,开心。

discuz整站源代码|discuz3.2精仿仿魔客吧整站源代码(GBK,带数据)

       内核说明:

       本站提供的discuz3.2精仿仿魔客吧整站源代码(GBK,带数据)基于Discuz X3.2系统设计,完全复制了魔客吧官网站点的功能,确保了系统的稳定性和实用性。

       模板特效采用css3和html5技术,使整个网站显得简洁大气,具有高端感。

       用途及功能:此模板适用于素材下载、分享或建站资源下载网站。站长可以利用Discuz的出售商品功能搭建销售系统,或采用金币收费模式。会员中心集成了推广赚金币、签到送积分、金币充值、VIP购买以及商品买卖赚金币等功能,具体操作可下载后自行研究。

       安装说明:

       1)将文件复制到网站根目录,完成后将XXXXXX/install/中的XXXXXX替换为你的域名,填写数据库信息进行安装。

       2)安装完成后,登录后台,打开XXXXXX/data/restore.php进行数据库恢复。恢复完成后,刷新后台页面,登录后台账号和密码均为admin。登录后台后,在工具中更新缓存,包括数据、模板和DIY,点击确定更新缓存,更新完成后刷新首页即可完成安装。

       下载地址:discuz整站源代码|discuz3.2精仿仿魔客吧整站源代码(GBK,带数据)

copyright © 2016 powered by 皮皮网   sitemap