Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (36.79 KB, 2 trang )
Đoạt quyền Admin ở Mambo SiteServer :
trang này đã được đọc lần
PROGRAM: Mambo SiteServer
HOMEPAGE:
TESTED: Mambo 4.0.12 RC2
LOGIN REQUIRED: No
PROOF OF CONCEPT
==============
DESCRIPTION
==========
Một lỗi trong /administrator/index2.php cho phép bất kỳ user nào cũng có thể đoạt được quyền admin
Thực tế, bạn chỉ nghĩ logging như một user bình thường sẽ tạo sessionid này, tuy nhiên một bug trong mã
nguồn PHP mà chắc chắn không làm cho điều này xảy ra.
Bất kỳ người nào hiểu sơ sơ về PHP cũng biết rằng khi bạn set một cookie, nó sẽ không cập nhật cho đến khi
bạn refresh trang web. Bất kỳ người nào nhưng người làm mã cho Mambo SiteServer là:
setcookie("sessioncookie", "$sessionID");
if ($HTTP_COOKIE_VARS["sessioncookie"]!="") {
$query="INSERT into ".$dbprefix."session set
session_id='$cryptSessionID', guest='', userid='$uid',
usertype='$usertype', gid='$gid', username='$username'";
$database->openConnectionNoReturn($query);
}
Như chúng ta có thể thấy, Mambo SiteServer kiểm tra nếu cookie được set trước khi nó cài vào sessionid
trong table. Như thế nó sẽ chưa được set, không có sessionid nào được cài vào và vì thế chúng ta không thể
"login" vào ngay cả thư mục admin.
Chuyển đến đoạn mã nguồn trong SessionCookie.php (cái mà được gọi ra khi bạn logout), chúng ta có thể
thấy rằng một sessionid được cài vào mỗi khi logout. Tại sao? Tôi không có ý kiến.
$current_time = time();
if ($HTTP_COOKIE_VARS["sessioncookie"]==""){
$randnum=getSessionID1();