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

Discuz_X3.4最新网站漏洞

[复制链接]

989

主题

92

回帖

5万

积分

管理员

积分
55362
发表于 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

4 n! G) J/ ?/ W
漏洞复现:
首先在发布地址下载3.4版本对应的安装包,解压后放入运行环境(我这里是win7+PHP,放入WWW内)。

7 F4 [; j. C! o# _" R# Y
在浏览器中输
入相应的路径,安装Discuz3.4.

$ S: h4 ~  t) @  P' n% D* D* W& j, E6 K5 V9 a! B
在创建数据库的界面进行抓包。
' _7 D+ K) J0 ^# z$ I
把%5Btablepre%5D=后边的内容修改为pre_’);phpinfo();//然后forward,随后开始安装。
安装完毕后在ComsenzDiscuz-DiscuzX-master\DiscuzX\upload\uc_server\data的config.inc.php文件中可以看到如下:
$ Q8 i# i5 Z: V" ]& q8 _! }/ }3 p
这里的内容变为我们抓包时修改的内容。在浏览器中访问ComsenzDiscuz-DiscuzX-master/DiscuzX/upload/uc_server/data/config.inc.php可以访问到我们修改后的phpinfo的界面。

( A9 |7 y& }# W, k; c0 l3 `1 W' ?2 m
1 f3 A* l" Z( g: V+ {+ Y9 o
% ?9 Q6 i" S* S, d  z
  o5 v! D; u6 y6 \- L
4 j, q  |. e5 D0 F( K* o* H

! n! i3 O$ p' r9 T+ E1 ^! W- [0 a8 ~( B9 D4 Q

) ?7 A. |# r5 L' P7 u$ T
" X! x! K) R' [; i/ L* r9 Y% t
漏洞分析:
漏洞成因:当cms安装过程中对配置文件config进行写入的时候,如果对写入的内容没有进行很好的过滤,就会把参数写入到config的代码总从而被执行。
) a1 B$ ^* g- ]1 o: c+ q
, Y& T/ o) ]: I' y# n& H2 u0 O
9 ]4 x' T$ e2 w! m# Q* N. G! h
通过查看DiscuzX\upload\install\index.php的配置文件,在代码的357行处发现save_config_file()函数

' A0 v+ i: P& }* r+ x8 |1 X" N' c0 r1 {% d4 _6 I3 E
save_config_file(ROOT_PATH.CONFIG, $_config, $default_config);
6 q! ~; t- `! y$ @
判断出函数作用是保存写入配置信息,其中,ROOT_PATH.CONFIG为文件的路径,$_config为配置文件的内容,$default_config为默认配置。

6 e+ h+ t& D* `4 G5 j
这里我们可以看出,首先判断了默认配置文件是否存在,如果不存在将会抛出错误:退出(‘CONTIGNGULALLUL DEFUCT.PHP丢失,请重新上传该文件。’);否则将配置文件的内容传送给默认配置文件。

2 _$ J+ c8 J+ h) E7 `# R% }: F' t- ^* q% ^
+ P" y& m4 b6 p$ b3 T$ f% Q% a9 {/ [

: ?! G5 b6 v  }3 p- b0 [, h3 _
判断是否post里面有内容,如果有的,使用post里面的内容,如果没有的,默认值是空字符串。

7 ~- W9 p) R# R. A  m
在这里看到了dbinfo的传入,使用$_post方法传入dbinfo中的内容,但是可以看到没有对传入参数有任何过滤,直接把dbinfo中的参数传入进来造成漏洞。
9 c3 v9 s- u4 }/ p- _
) ~) E# k" @. H  q, h7 s8 y$ d

# ~% h: B2 t6 O$ Z$ u4 `( b4 P/ \
我们在抓包后,把%5Btablepre%5D=后边的内容修改为pre_’);phpinfo();//
即把pre_’);phpinfo();//上传到配置文件中从而使括号闭合‘//‘会注释掉后边自动补充的内容,因此在执行这个配置文件时会跳转到phpinfo的界面。
' b% [1 X+ [4 M6 [6 m
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|

GMT+8, 2026-5-6 08:37 AM , Processed in 0.086886 second(s), 23 queries .

Powered by xyh-moon X3.5

© 2001-2025 Discuz! Team.

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