找回密码
 立即注册
搜索
查看: 155|回复: 0

Discuz_X3.4最新网站漏洞

[复制链接]

985

主题

92

回帖

5万

积分

管理员

积分
53561
发表于 2022-6-25 08:51:18 | 显示全部楼层 |阅读模式
Discuz_X3.4最新网站漏洞
影响版本:Discuz_X3.4
漏洞类型:配置文件写入导致代码执行
Discuz_X3.4发布地址:http://www.discuz.net/forum-10-1.html
问题文件: \upload\install\index.php

5 h. `" Q* k4 _( `' i" X: N
漏洞复现:
首先在发布地址下载3.4版本对应的安装包,解压后放入运行环境(我这里是win7+PHP,放入WWW内)。
5 u' \! ^) Q, s" U8 o
在浏览器中输
入相应的路径,安装Discuz3.4.

& Q, W" V5 k8 l9 ]/ Z4 e
8 x/ u6 {3 a  Z3 i6 w* q3 w! S
在创建数据库的界面进行抓包。
" E' f. h: e* R7 H$ b/ B% `9 H2 M
把%5Btablepre%5D=后边的内容修改为pre_’);phpinfo();//然后forward,随后开始安装。
安装完毕后在ComsenzDiscuz-DiscuzX-master\DiscuzX\upload\uc_server\data的config.inc.php文件中可以看到如下:
9 h/ r( y" E4 f  ?2 ?' L
这里的内容变为我们抓包时修改的内容。在浏览器中访问ComsenzDiscuz-DiscuzX-master/DiscuzX/upload/uc_server/data/config.inc.php可以访问到我们修改后的phpinfo的界面。
% u, O1 s- W6 F2 h

% z& |' x  h  ^; R9 e9 _" U
6 U. ?, E9 P4 ^) H7 |2 u! D  B8 ^* K7 n9 M: o2 Z, j; P

3 l  t: H: N8 X" L- f) T1 i1 O2 r" {" N2 e

: r, F, Y7 }/ b6 ]9 @6 }" ^
" @; L9 O) Z& c4 y4 u, v2 k7 G* x' C+ b: H3 f' Q2 ~, S

6 y# d5 R' f; t% j* D
漏洞分析:
漏洞成因:当cms安装过程中对配置文件config进行写入的时候,如果对写入的内容没有进行很好的过滤,就会把参数写入到config的代码总从而被执行。

/ f( Q$ `# [" p+ L0 w. @" Y5 y, ]' W6 w/ Q& k$ f0 t; \& O

" _- F; v& M$ H$ |
通过查看DiscuzX\upload\install\index.php的配置文件,在代码的357行处发现save_config_file()函数
6 A! A9 z* l$ i, `) z

2 K( e, [3 w5 h9 p$ [
save_config_file(ROOT_PATH.CONFIG, $_config, $default_config);

( g* l$ f' F; @9 @3 E) N0 F% C* T2 Q
判断出函数作用是保存写入配置信息,其中,ROOT_PATH.CONFIG为文件的路径,$_config为配置文件的内容,$default_config为默认配置。
* P+ V1 \0 o; n
这里我们可以看出,首先判断了默认配置文件是否存在,如果不存在将会抛出错误:退出(‘CONTIGNGULALLUL DEFUCT.PHP丢失,请重新上传该文件。’);否则将配置文件的内容传送给默认配置文件。
8 F3 D4 O# j. w
7 d5 `" h3 Y- |$ ?0 W$ e
) R& O- v  b8 Q- t. s3 c

6 [% w" P0 p0 U( v3 e
判断是否post里面有内容,如果有的,使用post里面的内容,如果没有的,默认值是空字符串。

6 b* v' Y6 O! I% r9 W8 n+ J: I
在这里看到了dbinfo的传入,使用$_post方法传入dbinfo中的内容,但是可以看到没有对传入参数有任何过滤,直接把dbinfo中的参数传入进来造成漏洞。

0 x: m) X( s! Z: ?8 M) G& a- v* m; I
+ G/ u- g7 m6 @9 j; S. G# B8 c3 V8 c9 _6 Z0 F; t2 f: y
我们在抓包后,把%5Btablepre%5D=后边的内容修改为pre_’);phpinfo();//
即把pre_’);phpinfo();//上传到配置文件中从而使括号闭合‘//‘会注释掉后边自动补充的内容,因此在执行这个配置文件时会跳转到phpinfo的界面。
* ?  F- e8 B0 h- _8 a" Q% t, @
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|

GMT+8, 2025-11-5 05:54 AM , Processed in 0.102818 second(s), 23 queries .

Powered by xyh-moon X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表