Tải bản đầy đủ (.pptx) (11 trang)

đề tài: XSS SQL injection

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.6 MB, 11 trang )

XSS & SQL injection
Thieu Mao - KSEC
1- Tấn công XSS như thế nào?
Phân loại lỗi XSS

Stored-XSS
Là lỗi XSS mà đoạn mã chèn thêm vào được lưu trữ trên
server, như trong CSDL dưới dạng các comment trong blog,
message trong forum.

Reflected-XSS
Khác với Stored-XSS, Reflected-XSS đoạn mã khai thác
sẽ không được lưu trữ trên server.
Stored-XSS
Đoạn mã <script>alert(“XSS”)</script> được chèn vào trong lời nhắn, và ngay
lập tức nó được thực thi như hình dưới. Vì các lời nhắn được lưu trữ trong
database nên bất cứ người dùng nào khi truy cập vào trang web này sẽ thực thi
đoạn mã trên. Thay vì một đoạn mã vô hại như trên, hacker có thể thay bằng các
đoạn mã nguy hiểm khác nhằm gây hại đến người dùng.
Reflected-XSS
Ta thấy từ khóa tìm kiếm mà ta nhập vào ô textbox được hiển thị lại trên trình
duyệt. Lợi dụng việc không kiểm soát giá trị này, ta có thể chèn thêm đoạn mã
gây hại vào. Đường link sẽ có dạng:
/>q=<script>alert(“XSS”)</script>
Tuy nhiên đoạn mã độc hại không được lưu lại trên server nên chỉ khi chạy
đường link trên, người dùng mới bị tấn công.
2- SQL injection là gì?

Là hình thức tấn công vào câu lệnh SQL SELECT. Bằng thủ
thuật nào đó, attacker chèn câu lệnh hợp lệ của mình vào câu
lệnh SQL SELECT của chương trình, để từ đó khai thác dữ


liệu cần thiết.
Các dạng lỗi thường gặp:

Không kiểm tra ký tự thoát truy vấn

Xử lý không đúng kiểu

Lỗi bảo mật bên trong máy chủ cơ sở dữ liệu

Blind SQL injection
Các dạng tấn công SQL injection
1. Dạng tấn công vượt qua kiểm tra đăng nhập
2. Dạng tấn công sử dụng câu lệnh SELECT
3. Dạng tấn công sử dụng câu lệnh INSERT
4. Dạng tấn công sử dụng stored-procedures
2.1 Dạng tấn công vượt qua kiểm tra đăng nhập
2.2 Dạng tấn công sử dụng câu lệnh SELECT

Như trường hợp hình bên dưới, ta có thể thay thế ID hợp lệ
bằng 1 giá trị khác. Ví dụ như 0 or 1=1
(thieumao.com/product.asp?ID=0 or 1=1)

Câu lệnh truy vấn SELECT * FROM T_NEWS WHERE
NEWS_ID =0 or 1=1 sẽ trả về tất cả các bài viết.
2.3 Dạng tấn công sử dụng câu lệnh INSERT

Ví dụ, một câu lệnh INSERT có cú pháp dạng:
INSERT INTO TableName VALUES('Value One', 'Value Two', 'Value Three')

Thì chắc chắn sẽ bị lỗi SQLi nếu ta nhập vào trường thứ nhất như:

' + (SELECT TOP 1 FieldName FROM TableName) + ‘

Lúc này câu truy vấn sẽ là :
INSERT INTO TableName VALUES(' ' + (SELECT TOP 1 FieldName FROM TableName) + ' ', 'abc',
'def')

Khi đó, lúc thực hiện lệnh xem thông tin, xem như bạn đã yêu cầu thực hiện
thêm một lệnh nữa đó là:
SELECT TOP 1 FieldName FROM TableName
2.4 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: ‘ ; EXEC
xp_cmdshell ‘cmd.exe dir C: ‘

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.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×