Đồ Án Xây dựng ứng dụng Demo SQL Injection

Thảo luận trong 'Công Nghệ Thông Tin' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    170
    Điểm thành tích:
    0
    Xu:
    0Xu
    MỞ ĐẦU
    Ngày nay, khi Internet được phổ biến rộng rãi ,các tổ chức đều có nhu cầu giới thiệu thông tin của mình trên xa lộ thông tin cũng như thực hiện các phiên giao dịch trực tuyến. Vấn đề nảy sinh là vi phạm ứng dụng của các ứng dụng web ngày càng mở rộng thì khả năng xuất hiện lỗi và bị tấn công càng cao, trở thành đối tượng cho nhiều người tấn công với các mục đích khác nhau. Đôi khi cũng chỉ đơn giản là để thử tài hoặc đùa bởn với người khác.
    Cùng với sự phát triển không ngừng của Internet và các dịch vụ trên Internet, số lượng dịch vụ tấn công trên Internet cũng tăng theo cấp số nhân. Trong khi các phương tiện thông tin đại chúng ngày càng nhắc nhiều đến những khả năng truy cập thông tin của Internet, thì các tài liệu chuyên môn bắt đầu đề cập đến nhiều vấn đề bảo đảm và an toàn dữ liệu cho các máy tính kết nối vào mạng Internet.
    Vì thế vấn đề bảo đảm và an toàn dữ liệu cho các máy tính được kết nối vào mạng Internet là cần thiết nhằm mục đích bảo vệ dữ liệu, bảo vệ thông tin doanh nghiệp, người dùng và bảo vệ hệ thống.
    Tuy đã có nhiều cố gắng từ các nhà lập trình Web nhưng vẫn không thể đảm bảo ngăn chặn toàn bộ vì công nghệ Web đang phát triển nhanh chóng (chủ yếu chú trọng đến yếu tố thẩm mỹ, yếu tố tốc độ, ) nên dẫn đến nhiều khuyết điểm mới phát sinh. Sự tấn công không nằm trong một vài khuôn khổ mà linh động và tăng lên tùy vào những sai sót của nhà quản trị hệ thống cũng như của những người lập trình ứng dụng.
    Vì vậy, đề tài này được thực hiện với mục đích tìm hiểu, phân tích các lỗ hổng bảo mật trong các ứng dụng Web.
    * Mục tiêu và nhiệm vụ
    - Tìm hiểu các vấn đề liên quan đến hoạt động của một ứng dụng Web.
    - Tìm hiểu các kỹ thuật tấn công ứng dụng Web cơ bản như: XSS, Session, DOS.
    - Tìm hiểu và nghiên cứu cụ thể kỹ thuật tấn công chèn câu truy vấn SQL Injection và các giải pháp phòng ngừa.
    - Xây dựng ứng dụng Web Demo thể hiện các cách tấn công của kỹ thuật SQL Injection và đưa ra giải pháp fix các lỗ hổng trong chương trình.
    - Kết quả thực hiện: nắm rõ bản chất và cách thức tấn công vào ứng dụng Web, áp dụng vào thực tế để hạn chế thấp nhất khả năng bị tấn công các ứng dụng Web sẽ triển khai.
    * Đối tượng và phạm vi nghiên cứu
    - Cở sở lý thuyết liên quan của hoạt động ứng dụng Web.
    - Các mô hình tấn công đặc trưng vào ứng dụng Web.
    - Kỹ thuật vượt qua cửa sổ đăng nhập.
    - Kỹ thuật lợi dụng các câu lệnh Select, Insert.
    - Kỹ thuật dựa vào các Stored Procedure.
    - Các giải pháp phòng ngừa ở mức quản trị và người lập trình ứng dụng.
    - Ngôn ngữ ASP.NET, SQL Server 2005.
    * Phương pháp nghiên cứu
    - Tổng hợp tìm hiểu, nghiên cứu từ các tư liệu liên quan.
    - Phân tích, đánh giá các kỹ thuật tấn công. Đưa ra các giải pháp phòng ngừa ở các mức.
    - Thiết kế table cơ sở dữ liệu, xây dựng ứng dụng Web Demo thể hiện các cách tấn công của SQL Injection.
    * Ý nghĩa thực tiễn của đề tài
    - Về mặt lý thuyết, đề tài thể hiện rõ các cách tấn công cơ bản thường được hacker sử dụng để tấn công vào các ứng dụng Web từ trước đến nay, và có thể sử dụng tiếp trong thời gian dài trong tương lai.
    - Về mặt thực tiển, với các cách tấn công của hacker như đã tìm hiểu, nghiên cứu trong báo cáo này, nếu áp dụng tốt các phương pháp phòng ngừa trong đề tài nêu ra sẽ góp phần nâng cao khả năng bảo vệ các ứng dụng Web trước nguy cơ tấn công của kẽ xấu.
    * Bố cục của báo cáo đồ án tốt nghiệp
    Báo cáo tốt nghiệp được chia thành 3 chương:
    - Chương 1: TỔNG QUAN VỀ WEB VÀ CÁC NGUY CƠ TẤN CÔNG ỨNG DỤNG WEB
    - Chương 2: MỘT SỐ PHƯƠNG PHÁP TẤN CÔNG VÀO TRANG WEB VÀ CÁCH PHỒNG CHỐNG
    - Chương 3: XÂY DỰNG ỨNG DỤNG DEMO SQL INJECTION

    CHƯƠNG 1
    TỔNG QUAN VỀ WEB VÀ CÁC NGUY CƠ TẤN CÔNG ỨNG DỤNG WEB
    1.1 TỔNG QUAN VỀ WEB
    1.1.1 Khái niệm ứng dụng Web
    Ứng dụng Web là một ứng dụng chủ, khách sử dụng giao thức HTTP để tương tác với người dùng hay hệ thống khác.
    Trình khách dành cho người sử dụng thường là một trình duyệt web như Internet Explorer hay Netscape Navigator. Cũng có thể là một chương trình đóng vai trò đại lý người dùng hoạt động như một trình duyệt tự động. Người dùng gửi và nhận các thông tin từ trình chủ thông qua việc tác động vào các trang Web. Các chương trình có thể là các trang trao đổi mua bán, các diển đàn ,gửi nhận e-mial
    Tốc độ phát triển của các kỹ thuật xây dựng ứng dụng web cũng phát triển rất nhanh. Trước đây những ứng dụng web thường được xây dựng bằng CGI (Common Gateway Interface) được chạy trên các trình chủ Web và có thể kết nối vào các cơ sở dữ liệu đơn giản trên cùng máy chủ. Ngày nay, ứng dụng web thường được viết bằng Java và chạy trên máy chủ phân tán, kết nối đến nhiều nguồn dữ liệu.
    Dù có nhiều biến thể, một ứng dụng Web thông thường được cấu trúc như một ứng dụng ba lớp:

    Hình 1.1 Một số ứng dụng web thường có kiến trúc
    ã Lớp trình bày: Lớp này có nhiệm vụ hiển thị dữ liệu cho người dùng, ngoài ra còn có thể có thêm các ứng dụng tạo bố cục cho trang web.
    ã Lớp ứng dụng: Là nơi xử lý các ứng dụng web. Nó sẽ xử lý thông tin người dùng yêu cầu, đưa ra quyết định, gửi kết quả đến “lớp trình bày” lớp này thường được cài đặt bằng các kỹ thuật lập trình như CGI, Java, NET, PHP hay ColdFusion, được triển khai trên các trình chủ như IBM WebSphere, WebLogic, Apache, IIS
    ã Lớp dữ liệu : thường là các hệ quản trị dữ liệu (DBMS) chịu trách nhiệm quản lý các file dữ liệu và quyền sử dụng.

    Hình 1.2 Mô hình hoạt động của một ứng dụng Web
    Kiến trúc một ứng dụng Web
    Trong đó :
    - Trình duyệt: Internet Explorer, Nétcap Navigator
    - Trình chủ : Apache, IIS .
    - Hệ quản trị cơ sỡ dữ liệu : SQL, Server, MySQL, DB2, Access
    Bên cạnh đó, một gải pháp dùng để bảo vệ một hệ thống mạng thường được sử dụng là bức tường lửa, nó có vai trò như là lớp rào chắn bên ngoài một hệ thống mạng vì chức năng chính của firewall là kiểm soát luồng thông tinh giữa các máy tính. Có thể xem là firewall như một bộ lộc thông tin, nó xác định cho phép một máy tính này được truy xuất đến một máy tính khác hay không, hay một mạng này có được truy xuất đến mạng kia hay không.
    Người ta thường dùng firewall vào mục đích:
    ã Cho phép hoặc cấm những dịch vụ truy xuất ra ngoài.
    ã Cho phép hoặc cấm những dịch vụ từ ngoài truy nhập vào trong.
    ã Kiểm soát địa chỉ truy nhập, cấm địa chỉ truy nhập.
    1.1.2 Các vấn đề liên quan đến ứng dụng Web
    1.1.2.1 Nguồn gốc phát triển ứng dụng Web
    Các ứng dụng Web được phát triển từ nhiều nguồn khác nhau, nên các lỗ hổng, các lỗi bảo mật cũng rất đa dạng. Tuy vậy, các ứng dụng Web chủ yếu được phát triển từ các nguồn chính sau đây:
    ã Người lập trình tự phát triển ứng dụng Web (Sử dụng các ngôn ngữ kịch bản để tạo ứng dụng, phát triển rộng rãi mà ít quan tâm đến quá trình phát triển ứng dụng an toàn. Thiếu đội ngũ lập trình với kỹ năng nhận biết phát triển ứng dụng tránh các lỗi bảo mật).
    ã Sử dụng ứng dụng Web từ mã nguồn mở (Thường không theo dõi và cập nhật các bản vá lỗi bảo mật).
    ã Phát triển ứng dụng Web từ một ứng dụng mở khác (Trường hợp này thường không kiểm tra lỗi bảo mật ứng dụng củ trước khi phát triển tiếp, nên vẫn tồn tại các lỗi bảo mật).
    1.2.1.2 Sự phát triển đa dạng của ứng dụng Web
    Ngày nay với sự phát triển không ngừng của Internet, các ứng dụng Web cũng phát triển đa dạng trên nhiều lĩnh vực: Cổng thông tin điện tử, báo tin tức điện tử, giao dịch tài chính ngân hàng, thị trường chứng khoán, trang thông tin điện tử doanh nghiệp,
    1.1.3 Mô tả hoạt động của ứng dụng Web
    Đầu tiên trình duyệt sẽ gửi một yêu cầu (request) đến trình chủ Web thông qua các lệnh cơ bản GET, POST .của giao thức HTTP, trình chủ lúc này có thể cho thực thi một chương trình được xây dựng từ nhiều ngôn ngữ như: C,C++,java hoặc trình chủ yêu cầu bộ diển dịc thực thi các trang ASP, JSP theo yêu cầu của trình khách.
     

    Các file đính kèm:

Đang tải...