Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

XSS & SQL injection

4,617 views

Published on

1. XSS:
Stored-XSS
Reflected-XSS
2. 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

Published in: Education
  • Login to see the comments

  • Be the first to like this

XSS & SQL injection

  1. 1. Thieu Mao - KSEC
  2. 2. 1- Tấn công XSS như thế nào?
  3. 3. 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.
  4. 4. 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.
  5. 5. 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: http://thieumao.vn/xss/reflected/index.php?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.
  6. 6. 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
  7. 7. 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
  8. 8. 2.1 Dạng tấn công vượt qua kiểm tra đăng nhập
  9. 9. 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.
  10. 10. 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
  11. 11. 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.

×