Bài giảng XSS và SQL Injection

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.

 

pptx10 trang | Chuyên mục: SQL Server | Chia sẻ: dkS00TYs | Lượt xem: 2229 | Lượt tải: 4download
Tóm tắt nội dung Bài giảng XSS và SQL Injection, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 Click to edit Master title style Click to edit Master text styles Second level Third level Fourth level Fifth level 10/9/2013 ‹#› 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ã alert(“XSS”) đượ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: “XSS”) 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 Dạng tấn công vượt qua kiểm tra đăng nhập Dạng tấn công sử dụng câu lệnh SELECT Dạng tấn công sử dụng câu lệnh INSERT 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. 

File đính kèm:

  • pptxBài giảng XSS và SQL Injection.pptx
Tài liệu liên quan