近期我们sinesafe安全部门审计discuz最新版的时候发现配置文件写入导致代码执行的问题。cms安装的时候一般会分为几个步骤去进行,其中有对配置文件config进行写入的步骤,当写入的时候未严格限制传入的参数就存在代码执行问题。

源码信息:Discuz_X3.4_GIT_SC_UTF8

问题文件: \upload\install\index.php

漏洞类型:配置文件写入导致代码执行

站点地址:http://www.discuz.net/forum-10-1.html

直接看配置信息写入的代码段为 \upload\install\index.php

看到save_config_file()函数是保存写入配置信息的,配置信息为$_config这个数组,我们跟踪下这个数组;

还是这个文件,代码段为第266行;

这里的$forceinstall参数即为通过POST接收的配置信息数值为二维数组,看到里面的dbinfo了,这里程序本身未对传入的POST值进行任何过滤,也就存在代码执行问题了。

直接安装到写入配置信息的步骤;

填入正确的数据库用户名账号和密码之后抓包;

这时候看下具体配置文件,代码段为/upload/uc_server/data/config.inc.php;

我们以前缀dbinfo[table_pre]参数为利用,看到使用单引号和括号括起来,所以payload为;

payload = pre_’);phpinfo();//

发到上述抓包里点击安装即可写入配置文件;

这时候看这个配置文件;

直接访问这个文件即可执行;

http://127.0.0.1/Discuz_X3.4_GIT_SC_UTF8/dir_SC_UTF8/upload/uc_server/data/config.inc.php

这个漏洞原理比较简单,针对其防御方法是需要对传入的配置信息进行转义处理,这里只要转义单引号就可以了,但是刚开始我有疑惑的点就是这里的payload在实际情况下,我们需要通过类似“爆破”的思路去测试大量payload,但是由于“安装锁”的存在,安装一次就会锁定程序生成install.lock文件防止重装,也就是“爆破”不了,那么这个漏洞是不是就利用不了呢?为了解决这个疑问,我重新看了下安装时候的源码信息,发现这个漏洞还是可以利用的;

还是在安装的文件里,第478行,可以看到在写入配置信息到config文件之后,下面还会判断当methon为ext_info的时候进行其他操作即生成安装锁文件进行锁定,到这个步骤才是完整的安装操作,也就是和之前的写入配置信息是“分开”进行的,也可通过抓包去看,比较明显,是两个不同的数据包,互相不会干涉,写入配置信息的数据包不会锁定安装程序,所以导致可通过“爆破”去利用,程序这么去设计也是业务逻辑的需求吧,如果写入配置信息的步骤即可生成安装锁文件并且结束安装的话,这个漏洞就利用不了了,除非存在任意文件删除漏洞可以去删除install.lock这个文件。

dz论坛Discuz_X3.4最新网站漏洞的更多相关文章

  1. MetInfo最新网站漏洞如何修复以及网站安全防护

    metinfo漏洞于2018年10月20号被爆出存在sql注入漏洞,可以直接拿到网站管理员的权限,网站漏洞影响范围较广,包括目前最新的metinfo版本都会受到该漏洞的攻击,该metinfo漏洞产生的 ...

  2. 网站漏洞修复案例之Discuz!3.4最新版本

    Discuz!论坛目前最新版本为3.4版本,已经好久没有更新了,我们SINE安全在对其网站安全检测的同时发现一处漏洞,该漏洞可导致论坛的后台文件可以任意的删除,导致网站瘫痪,后台无法登陆.关于该网站漏 ...

  3. 齐博cms最新SQL注入网站漏洞 可远程执行代码提权

    齐博cms整站系统,是目前建站系统用的较多的一款CMS系统,开源,免费,第三方扩展化,界面可视化的操作,使用简单,便于新手使用和第二次开发,受到许多站长们的喜欢.开发架构使用的是php语言以及mysq ...

  4. 网站漏洞修复之最新版本UEditor漏洞

    UEditor于近日被曝出高危漏洞,包括目前官方UEditor 1.4.3.3 最新版本,都受到此漏洞的影响,ueditor是百度官方技术团队开发的一套前端编辑器,可以上传图片,写文字,支持自定义的h ...

  5. 如何让多个dz论坛共用一个用户数据库

    用户数据库在论坛中是可以独立备份的,备份方法:论坛后台——站长——数据库,备份所有ucenter数据表,也就是用户数据.其他DZ论坛搭建完成以后,可以上传用户数据库,将备份文件使用上传至网站所使用的主 ...

  6. ecshop跨站漏洞详情及修补网站漏洞

    ecshop目前最新版本为4.0,是国内开源的一套商城系统,很多外贸公司,以及电商平台都在使用,正因为使用的人数较多,很多攻击者都在挖掘该网站的漏洞,就在最近ecshop被爆出高危漏洞,该漏洞利用跨站 ...

  7. 网站漏洞检测之WordPress 5.0.0 系统修复方案

    2019年正月刚开始,WordPress最新版本存在远程代码注入获取SHELL漏洞,该网站漏洞影响的版本是wordpress5.0.0,漏洞的产生是因为image模块导致的,因为代码里可以进行获取目录 ...

  8. 怎么修复网站漏洞 骑士cms的漏洞修复方案

    骑士CMS是国内公司开发的一套开源人才网站系统,使用PHP语言开发以及mysql数据库的架构,2019年1月份被某安全组织检测出漏洞,目前最新版本4.2存在高危网站漏洞,通杀SQL注入漏洞,利用该网站 ...

  9. PrestaShop 网站漏洞修复如何修复

    PrestaShop网站的漏洞越来越多,该网站系统是很多外贸网站在使用的一个开源系统,从之前的1.0初始版本到现在的1.7版本,经历了多次的升级,系统使用的人也越来越多,国内使用该系统的外贸公司也很多 ...

随机推荐

  1. SQL转Linq工具的使用——Linqer

    官方下载网站:http://www.sqltolinq.com/ 本文介绍版本为Linqer 4.5.7 第一步:下载下来,解压,双击安装.exe文件,运行界面如下. 第二步:建立与数据库的连接 点击 ...

  2. HDU 4757 Tree(可持续化字典树,lca)

    题意:询问树上结点x到结点y路上上的权值异或z的最大值. 任意结点权值 ≤ 2^16,可以想到用字典树. 但是因为是询问某条路径上的字典树,将字典树可持续化,字典树上的结点保存在这条路径上的二进制数. ...

  3. Android(java)学习笔记39:Android 修改字体

    首先如果android内部自带的字体不是我们需要的字体,那我们就需要字体文件导入到android开发工程中,下午我们详细讲述: 1.我们首先分析知道,我想要TextView控件中文字的字体是:华文楷体 ...

  4. 【[ZJOI2008]骑士】

    这道题好暴力啊 发现自己刚学\(OI\)的时候对着这道题写了一个大搜索 发现已经看不懂了 果然我现在菜到连一年半前的我都不如了 这其实是一个基环树\(dp\)啦,基环树上的最大点独立集 其实很简单,我 ...

  5. Java字符串常量池是什么?为什么要有这种常量池?

    简单介绍 Java中的字符串常量池(String Pool)是存储在Java堆内存中的字符串池.我们知道String是java中比较特殊的类,我们可以使用new运算符创建String对象,也可以用双引 ...

  6. 【P2447 [SDOI2010]外星千足虫】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2447 dalao们都说简单...解异或方程组 可我不是dalao qwq #include <algo ...

  7. [luoguP3325][HNOI2012]矿场搭建

    P3225 [HNOI2012]矿场搭建 题目描述 煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处.于是矿主决定在某些挖煤 ...

  8. Android学习笔记_53_Android界面的基本属性

    很好很全面http://www.eoeandroid.com/forum.php?mod=viewthread&tid=46859 布局: 在 android 中我们常用的布局方式有这么几种: ...

  9. HTML5 小实例

    1.时钟: <!doctype html> <html> <head></head> <body> <canvas id=" ...

  10. 总结的MR中连接操作

    1 reduce side join在map端加上标记, 在reduce容器保存,然后作笛卡尔积缺点: 有可能oom 2 map side join  2.1 利用内存和分布式缓存,也有oom风险 2 ...