Tôi đã được trên bảng tin này chạy trên vBulletin 3.8 cho khá trong một giờ, và chúng tôi có một vấn đề đó; Các quản trị viên lại cho chúng ta cho chết. Ông đã không được trực tuyến cho cách quá dài, và chúng tôi cần một số thay đổi trên trang web. Tôi figured này là một thời điểm thích hợp để có được những kỹ năng hax0r của tôi tham gia. Tôi sẽ giải thích làm thế nào tôi đã làm điều này, nhưng tôi sẽ không để có được vào từng chi tiết, như tôi không thực sự muốn bất cứ ai trên trang web này để thử ra. Một cái gì đó giống như một thiếu mệnh đề WHERE có thể làm cho tất cả tài khoản người dùng không sử dụng được. Tất cả trong số họ ... Có mà nói, hãy để ... bắt đầu! Những gì tôi cần phải thực hiện là để có được bản thân mình quyền admin, vì vậy tôi có thể làm cho những thay đổi cần thiết. vBulletin có một cơ sở mã đẹp, rắn, không dễ bị tấn công. Nhưng may mắn thay, diễn đàn có một số tùy chỉnh add-ons, hoặc "mod", được thực hiện bởi các quản trị bản thân. Tôi nghĩ đây là một nơi tốt để bắt đầu tìm kiếm khai thác. Có một nơi mà bạn có thể thay đổi tiêu đề khác sử dụng của người dân (một văn bản nhỏ được được hiển thị bên dưới biệt danh của người dùng). Tôi chỉ cần nhập vào một giá duy nhất để xem nếu đầu vào người sử dụng đã được thoát đúng cách, và ... jackpot! Tôi nhận được lỗi này: hình ảnh không bao giờ hiển thị lỗi như thế này để người sử dụng! Bạn có nhận thấy như thế nào thông tin hữu ích này với tôi? Tôi có thể thấy cái tên này (không có tiền tố bảng), và các tên trường. Tôi có thể nhìn thấy chính xác những gì đang xảy ra đằng sau hậu trường, và làm thế nào để khai thác lỗ hổng này. Điều này có thể là bất kỳ đẹp hơn? Tôi không nghĩ vậy. Điều này có nghĩa là bây giờ tôi có đầy đủ "UPDATE" tiếp cận "người sử dụng" bảng. Các trường nhập văn bản mà tôi đang sử dụng bị giới hạn 21 ký tự, nhưng may mắn trên phía máy khách chỉ (lớn, sai lầm lớn). Tôi mở Firebug và gỡ bỏ các "maxlength" thuộc tính từ các lĩnh vực văn bản, và các giới hạn đã được đi. Nếu bắt buộc phải giới hạn độ dài đầu vào, không tin tưởng vào người sử dụng. Làm điều đó trên server-side là tốt. Độ dài đầu vào thậm chí sẽ không là một vấn đề nếu thoát thích hợp sẽ được áp dụng. image Vì vậy, làm thế nào tôi có thể sử dụng khai thác bây giờ? Tôi có thể viết cho "người sử dụng" bảng duy nhất, đó có nghĩa là tôi có thể cho ví dụ thay đổi ID usergroup của tôi để "6" (đó là ID mặc định vBulletin cho quản trị viên). Điều đó sẽ được tôi quyền truy cập vào bảng điều khiển quản trị, nhưng nó sẽ chỉ cung cấp cho tôi một số lượng rất hạn chế các lựa chọn, đó là tất cả vô giá trị với tôi. Các quản trị viên thực mình cần để cung cấp cho người sử dụng tất cả các đặc quyền muốn, và điều này không thể được thực hiện trong các "người sử dụng" bảng một mình. Lý tưởng nhất, thì bạn cần truy cập vào tài khoản của mình để tôi có thể làm điều này bản thân mình. hình ảnh Với này khai thác, tôi có thể thay đổi mật khẩu của người quản trị, nhưng không cần phải nói, anh sẽ nhận ra rằng thời gian tới, ông đã cố gắng để đăng nhập vào. Nhưng nếu tôi sao chép mật khẩu của mình, (mà bằng cách này là một MD5 băm string), đến một nơi tạm thời? Bằng cách này tôi có thể khôi phục lại nó sau khi hiến mình tất cả các quyền admin cần thiết, vì nếu không có gì từng xảy ra và tất cả chúng ta vẫn sống trong một thế giới hoàn hảo. Tôi chỉ có "UPDATE" tiếp cận "người sử dụng" bảng, vì vậy tôi cần một lĩnh vực nào đó trong có mà có thể nắm giữ ít nhất 32 ký tự cho hash MD5. Tôi nhận thấy lĩnh vực "msn" chỉ là hoàn hảo cho điều đó (nó chứa lên đến 100 ký tự). Mặc dù, "yahoo" và "skype" các lĩnh vực đã có thể làm nó quá: hình ảnh (Có một bản sao địa phương của vBulletin đến tay khi điều tra và có, tôi sở hữu một giấy phép..) Vì vậy, làm thế nào tôi có thể dùng SELECT mật khẩu của mình, và sao chép nó đến trường "msn" của tôi? Hãy nhớ rằng chúng ta phải làm tất cả những nhiệm vụ với chỉ duy nhất một truy vấn UPDATE. Và thông thường, bạn không thể sử dụng các truy vấn CẬP NHẬT với SELECT truy vấn phụ nếu cả hai truy cập vào cùng một bảng. Nhưng có một mẹo quá. CẬP NHẬT `user` SET` msn` = ( CHỌN `password` TỪ ( CHỌN `userid`,` password` FROM `` user` ĐÂU userid` = 1 ) AS `x` ĐÂU userid = 1 ) ĐÂU userid = xxxx xem rawgistfile1.sql lưu trữ với ❤ bởi GitHub Nếu bạn muốn có một số mảnh tốt của lời khuyên, đừng quên các điều khoản ĐÂU (ai trong số họ)! Tôi vô tình chọn 50 + K người sử dụng và tạm thời bị rơi máy chủ MySQL. Sweet! Bây giờ trường "msn" tôi giữ mật khẩu băm của mình, mà tôi thậm chí không muốn bạo lực hoặc crack. Tôi chỉ cần nó vì vậy tôi có thể đặt nó trở lại sau khi tôi thực hiện, do đó, ông sẽ không nhận thấy tôi tạm thời "mượn" tài khoản của mình. Bây giờ tôi cần phải thay đổi mật khẩu của mình. Trong pseudo-code, vBulletin hiện băm như thế này: md5 (md5 (password) muối) Vì lý do bảo mật, mỗi người dùng có muối của riêng cá nhân của họ, chủ yếu là vì vậy mà nhiều người dùng chia sẻ cùng một mật khẩu không kết thúc với cùng bảng băm , và cùng một lúc render các bảng cầu vồng vô dụng. Nhưng trong trường hợp này, nó không đảm bảo bất cứ điều gì ở tất cả. Chúng tôi chỉ có thể lấy muối của nạn nhân và tạo ra một mật khẩu mới với nó. Chúng tôi thậm chí không cần phải biết những gì giá trị thực tế của nó. Chúng tôi có thể sử dụng SQL bản địa để tạo ra một mật khẩu mới bằng cách sử dụng muối hiện tại: CẬP NHẬT `user` SET `password` = MD5 (CONCAT (MD5 ('mới vượt qua'), `salt`)) ĐÂU `userid` = 1 view rawgistfile1.sql lưu trữ với ❤ bởi GitHub dễ dàng! Bây giờ tôi đã thiết lập mật khẩu riêng của tôi, tôi chỉ có thể đăng nhập vào tài khoản của mình, bằng cách sử dụng tên đăng nhập ban đầu của mình và mật khẩu mới tôi vừa tạo ra, và cho bản thân mình tất cả các quyền admin mà cù ưa thích của tôi. Sau khi làm như vậy, tôi có thể khôi phục lại mật khẩu cũ của mình bằng cách chạy một truy vấn SQL đơn giản: CẬP NHẬT `user` SET `password` = 'Giá trị MD5 từ lĩnh vực MSN của tôi' ĐÂU `userid` = 1 view rawgistfile1.sql lưu trữ với ❤ bởi GitHub Điều này có thể được rõ ràng, nhưng bạn có thể nhận được các hash bằng cách vào hồ sơ của bạn và đọc giá trị từ MSN trường. image Và đó là khá nhiều đó! Bây giờ tôi có quyền admin đầy đủ, và quản trị sản sẽ không nhận thấy trừ khi anh ta có một cái nhìn gần gũi hơn. Nhưng sau đó nó sẽ là quá muộn anyway! ;) Kể từ khi tôi có quyền truy cập vào các hệ thống plug-in bây giờ, tôi có thể tạo ra và cài đặt những cái riêng của tôi. Và do đó, cho phép tôi để tải lên / tải các tập tin, hoặc khá nhiều bất cứ điều gì khác tôi có thể nghĩ đến. Tôi có quyền kiểm soát hoàn toàn, và tất cả vì một ngớ ngẩn, giá trị có vẻ vô hại trong một truy vấn SQL nhỏ mà không có ai chăm sóc để trốn thoát.
đang được dịch, vui lòng đợi..
