Tấn Công Sql Injection Sử Dụng Câu Lệnh Select Union

  • TIN MỚI
    • Kiến thức hay
    • Tin Công nghệ
    • Đánh giá công nghệ
    • Tiền của tôi
    • Số hóa
    • Tin Giáo dục
    • Tin Giải trí
    • Ngữ pháp tiếng anh
    • Kinh nghiệm học tiếng anh
    • Xem Phim
    • Kinh nghiệm
  • KHÓA HỌC CỦA BẠN
  • Tin học văn phòng
    • Khóa học Tuyệt đỉnh Power BI
    • Khóa học lập trình VBA Excel
    • Khóa dựng phần mềm quản lý bằng MS ACCESS
    • Đào tạo Excel 2010 chuyên nghiệp
    • Đào tạo Word 2010 chuyên nghiệp
    • Đào tạo Powerpoint 2010 Pro
    • Đào tạo vẽ Visio 2010 chuyên nghiệp
    • Chứng chỉ MOS
  • Ebook
  • Kỹ Năng Mềm
    • Học Excel
    • Thủ thuật Excel
    • Excel nâng cao
    • Excel VBA
    • Google Sheets
    • Học Word
    • Học PowerPoint
    • Học Access
  • Review Công nghệ
    • Đọc báo Song ngữ Anh- Việt
    • Tải Phần mềm
    • Hacker
    • Giải trí
    • Học tiếng anh
  • Lập trình
    • Đào tạo lập trình Foxpro
    • Đào tạo lập trình ACCESS 2010
    • Đào tạo Lập trình Excel
    • Lập trình Web
    • Đào tạo Lập trình PHP
    • Đào tạo lập trình Mobile
  • Tin công nghệ
    • Tin Bảo mật - An toàn thông tin
    • Giáo dục 4.0
  • Học đồ họa
    • Đào tạo photoshop chuyên nghiệp
    • Đào tạo CorelDraw chuyên nghiệp
  • Office
    • Đào tạo Excel 2013 của Microsoft
    • Đào tạo Word 2013 của Microsoft
    • Đào tạo Powerpoint 2013
    • Các chương trình khác
  • Học Online
    • Hướng dẫn Tiếng anh
    • Thực hành Tiếng anh chuẩn quốc tế
    • Thư viện khóa học
    • Thực hành Tiếng anh giao tiếp
    • Bài giảng điện tử
  • Công cụ hữu ích
    • Đọc số thành chữ
    • Tra cứu phím tắt Excel
    • Đọc công thức Excel Dễ hơn
    • Đếm số từ trong Văn bản
    • Đếm số ký tự trong Văn bản
    • Chuyển Văn bản thành Mp3
    • Tạo QrCode
    • Bộ soạn thảo trực tuyến
    • Bộ công cụ đặc biệt
    • Diễn đàn
  • Phiên âm chuẩn
  • SMS Free
  • HỌ ĐINH
Home » Công nghệ mới » Công nghệ số » HAcker » Tấn công sql injection sử dụng câu lệnh select union Tấn công sql injection sử dụng câu lệnh select union

Trên đây là bài thuyết trình khá hay về tấn công Sql Injection. Việc thiết kế và đưa website vào hoạt động luôn đòi hỏi các nhà phát triển phải quan tâm đến vấn đề về an toàn, bảo mật nhằm giảm thiểu tối đa khả năng bị tin tặc tấn công. Thường các nhà phát triển tập trung vào các vấn đề an toàn của hệ điều hành, hệ quản trị CSDL, webserver… Chẳng hạn như hổng bảo mật trên IIS. Tuy nhiên, có một nguy cơ tiềm ẩn ít được quan tâm đó là các đoạn mã của ứng dụng. Một trong số đó là tấn công bằng SQL Injection. SQL Injection là một kĩ thuật cho phép những kẻ tấn công thi hành các câu lệnh truy vấn SQL bất hợp pháp (người phát triển không lường trước được) bằng cách lợi dụng lỗ hổng trong việc kiểm tra dữ liệu nhập từ các ứng dụng web. Hậu quả này rất tai hại vì nó cho phép kẻ tấn công có toàn quyền, hiệu chỉnh… trên cơ sở dữ liệu của ứng dụng. Lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lí bằng các hệ quản trị CSDL như SQL Server, Oracle, DB2, Sysbase. Xét một ví dụ điển hình, thông thường để cho phép người dùng truy cập vào các trang web được bảo mật, hệ thống thường xây dựng trang đăng nhập để yêu cầu người dùng nhập thông tin về tên đăng nhập và mật khẩu. Sau khi người dùng nhập thông tin vào, hệ thống sẽ kiểm tra tên đăng nhập và mật khẩu có hợp lệ hay không để quyết định cho phép hay từ chối thực hiện tiếp. Trong trường hợp này, người ta có thể dùng 2 trang, một trang HTML để hiển thị form nhập liệu và một trang ASP dùng để xử lí thông tin nhập từ phía người dùng. Ví dụ: Login.htm

<form action=”ExecLogin.asp” method=”post”> Username: <input type=”text” name=”txtUsername”><br> Password: <input type=”password” name=”txtPassword”><br> <input type=”submit”> </form>
ExecLogin.asp
<% Dim p_strUsername, p_strPassword, objRS, strSQL p_strUsername = Request.Form(“txtUsername”) p_strPassword = Request.Form(“txtPassword”) strSQL = “SELECT * FROM tblUsers “ & _ “WHERE Username=’” & _strUsername & _ “‘ and Password=’” & p_strPassword & “‘“ Set objRS = Server.CreateObject(“ADODB.Recordset”) objRS.Open strSQL, “DSN=…” If (objRS.EOF) Then Response.Write “Invalid login.” Else Response.Write “You are logged in as “ & objRS(“Username”) End If Set objRS = Nothing %>
Thoạt nhìn, đoạn mã trong trang ExecLogin.asp dường như không chứa bất cứ một lỗ hổng bảo mật nào. Người dùng không thể đăng nhập mà không có tên đăng nhập và mật khẩu hợp lệ. Tuy nhiên, đoạn mã này thực sự không an toàn và là tiền đề cho tấn công SQL Injection. Đặc biệt, sơ hở nằm ở chỗ dữ liệu người dùng nhập vào được dùng để xây dựng trực tiếp câu lệnh truy vấn SQL. Chính điều này cho phép những kẻ tấn công có thể điều khiển được câu truy vấn sẽ được thực hiện.
Ví dụ, nếu người dùng nhập chuỗi sau vào trong cả 2 ô nhập liệu username/password của trang Login.htm: ‘ or ‘’ = ‘ . Lúc này, câu truy vấn sẽ được gọi thực hiện là: SELECT * FROM tblUsers WHERE Username=’’ or ‘’=’’ and Password = ‘’ or ‘’=’’
Câu truy vấn này là hợp lệ và sẽ trả về tất cả các bản ghi của tblUsers, và đoạn mã tiếp theo xử lí người dùng đăng nhập bất hợp pháp này như là người dùng đăng nhập hợp lệ. Một ví dụ khác của tấn công SQL Injection nữa là khi các trang Web sử dụng dữ liệu nhập vào theo dạng querystring (bằng cách gõ cặp tham số và giá trị trực tiếp trên thanh địa chỉ hoặc dùng form với thuộc tính ACTION là GET). Ví dụ sau minh họa một trang ASP nhận dữ liệu cho biến ID thông qua querystring và phát sinh nội dung của trang đó dựa trên ID:
<% Dim p_lngID, objRS, strSQL p_lngID = Request(“ID”) strSQL = “SELECT * FROM tblArticles WHERE ID=” & p_lngID Set objRS = Server.CreateObject(“ADODB.Recordset”) objRS.Open strSQL, “DSN=…” If (Not objRS.EOF) Then Response.Write objRS(“ArticleContent”) Set objRS = Nothing %>
Trong các tình huống thông thường, đoạn mã này hiển thị nội dung của article có ID trùng với ID được chuyển đến cho nó dưới dạng querystring. Ví dụ, trang này có thể được gọi như sau:
http://www.example.com/Article.asp?ID=1055, để hiển thị nội dung của article có ID là 1055.
Giống như ví dụ đăng nhập ở trên, đoạn mã này để lộ sơ hở cho khả năng tấn công SQL Injection. Kẻ tấn công có thể thay thế một ID hợp lệ bằng cách gán ID cho một giá trị khác, để thực hiện một lệnh SQL bất hợp pháp, ví dụ như: 0 or 1=1 (nghĩa là, http://www.example.com/Article.asp?ID=0 or 1=1). Câu truy vấn SQL lúc này sẽ trả về tất cả các article từ bảng dữ liệu vì nó sẽ thực hiện câu lệnh:
SELECT * FROM tblArticles WHERE ID=0 or 1=1
Tất nhiên ví dụ này dường như không có gì nguy hiểm, nhưng hãy thử tưởng tượng kẻ tấn công có thể xóa toàn bộ CSDL bằng cách chèn vào các đoạn lệnh nguy hiểm như lệnh DELETE. Tất cả chỉ là đơn giản thay đổi chuỗi gán dữ liệu cho ID, ví dụ như:
http://www.example.com/Article.asp?ID=1055; DELETE FROM tblArticles.

Tác Hại Và Cách Phòng Tránh

Tác hại của dạng tấn công SQL Injection tùy thuộc vào môi trường và cách cấu hình hệ thống. Nếu ứng dụng sử dụng quyền dbo (quyền của người sở hữu CSDL) khi thao tác dữ liệu, nó có thể xóa toàn bộ các bảng dữ liệu, tạo các bảng dữ liệu mới… Nếu ứng dụng sử dụng quyền sa (quyền quản trị hệ thống), nó có thể điều khiển toàn bộ hệ CSDL và thậm chí có thể tạo ra các tài khoản người dùng bất hợp pháp để điều khiển hệ thống của bạn. Để phòng tránh các nguy cơ có thể xảy ra, hãy bảo vệ các câu truy vấn SQL bằng cách kiểm soát chặt chẽ tất cả các dữ liệu nhập nhận được từ đối tượng Request (Request, Request. QueryString, Request.Form, Request. Cookies, và Request.Server Variables). Trong trường hợp dữ liệu nhập vào là chuỗi, như trong ví dụ 1, lỗi xuất phát từ việc có dấu nháy đơn trong dữ liệu. Để tránh điều này, thay thế các dấu nháy đơn bằng hàm Replace để thay thế bằng 2 dấu nháy đơn:
p_strUsername = Replace(Request.Form(“txtUsername”), “‘“, “‘’”) p_strPassword = Replace(Request.Form(“txtPassword”), “‘“, “‘’”)
Trong trường hợp dữ liệu nhập vào là số, như trong ví dụ 2, lỗi xuất phát từ việc thay thế một giá trị được tiên đoán là dữ liệu số bằng chuỗi chứa câu lệnh SQL bất hợp pháp. Để tránh điều này, đơn giản hãy kiểm tra dữ liệu có đúng kiểu hay không:
p_lngID = CLng(Request(“ID”))
Như vậy, nếu người dùng truyền vào một chuỗi, hàm này sẽ trả về lỗi ngay lập tức. Ngoài ra để tránh các nguy cơ từ tấn công SQL Injection, nên chú ý loại bỏ bất kì thông tin kĩ thuật nào chứa trong thông điệp chuyển tới cho người dùng khi ứng dụng có lỗi. Các thông báo lỗi thông thường tiết lộ các chi tiết kĩ thuật có thể cho phép kẻ tấn công biết được điểm yếu của hệ thống. Bạn có thể tham khảo thêm thông tin về cách thức tạo ra các trang báo lỗi tùy ý trong “Tạo ra các trang báo lỗi ASP được tùy biến”. Cuối cùng, để hạn chế thiệt hại do tấn công SQL Injection, nên kiểm soát chặt chẽ và giới hạn quyền xử lí dữ liệu của tài khoản người dùng mà ứng dụng web đang sử dụng. Các ứng dụng thông thường nên tránh dùng các quyền như dbo hay sa. Quyền càng hạn chế, thiệt hại càng ít.

About Học viện đào tạo trực tuyến

Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: [email protected] . - Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng . - Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu... HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG. «
Next
Bài đăng Mới hơn
»
Previous
Bài đăng Cũ hơn
Bài đăng Mới hơn Bài đăng Cũ hơn Trang chủ

Bài đăng nổi bật

Khóa Đào Tạo Hacker Mũ Trắng

Nhấn vào đây để bắt đầu khóa học   Giúp học viên tìm hiểu cơ bản bản chuyên sâu kỹ năng hack website, sever, email, sms, facebook... Khóa...

Tuyển tập hay nhất

Khóa học trực tuyến

Truy cập nhiều nhất

  • Hướng dẫn về ASP.NET MVC và Action Result Nếu bạn đã từng làm việc trong một dự án ASP.NET MVC thì chắc chẳng còn xa lạ gì với khái niệm Action result mà ASP.NET MVC đã và đang cung...
  • Hướng dẫn sử dụng phần mềm Anki - Học tiếng anh hiệu quả nhất Anki là một phần mềm được thiết kế để giúp bạn ghi nhớ các sự kiện, từ ngữ (chẳng hạn như từ ngữ trong một ngôn ngữ nước ngoài) một cách ...
  • Phần mềm Bizagi Thiết kế, quản lý dữ liệu dự án cho doanh nghiệp Bizagi Modeler được thiết kế để diễn đạt hệ thống ký hiệu mô hình hóa tiến trình nghiệp vụ BPMN theo cấu trúc dự án, tiến tới mục tiêu tăng ...
  • Apple tung video quảng cáo độ bền và camera của iPhone 11 Pro Apple vừa tung hai đoạn video ngắn để quảng cáo cho độ bền và 3 camera trên iPhone 11 Pro . Bạn sẽ thấy là iPhone 11 Pro bị ném nh...
  • Cách dùng Termux để cài phần mềm Hack trên điện thoại Android Mục lục bài viết Termux là gì? Cách cài đặt Có thể dùng Termux để Hack không? Cách cài đặt các công cụ hack trên Termux Cài NMAP – Công cụ ...
  • Những thói quen xấu đang "giết chết" chiếc laptop của bạn Laptop ngày càng khẳng định được vị thế quan trọng trong cuộc sống của con người hiện đại, song, ít ai biết được rằng, nh...
  • Giới thiệu cơ sở dữ liệu AdventureWorks Trước đây, khi nói tới cơ sở dữ liệu ví dụ của Microsoft chúng ta sẽ nghĩ ngay tới CSDL  Northwind , tuy nhiên từ khi giới thiệu SQL Server...
  • 108 câu hỏi trắc nghiệm và đáp án môn Quản Trị Mạng Câu hỏi và đáp án Câu 1. Địa chỉ IP có độ dài bao nhiêu bit và được phân thành bao nhiêu lớp? a. 32 bit, 4 lớp (A, B,C,D) ...
  • Tìm kiếm file trên Window theo nhiều điều kiện hoặc danh sách Bạn đã bao giờ phải tìm danh sách các file khi biết tên file của các nó; nếu bạn cần xử lý tình huống như vậy hãy sử dụng công cụ SearchMyF...
  • Những thông tin thú vị về quốc đảo Madagascar Madagascar là một quốc đảo ở Châu Phi, nằm ở Ấn Độ Dương bên phải của lục địa Phi châu. Các nhà khảo cổ ước tính rằng loài người đã đến địn...

Tin công nghệ

Download

Danh mục bài viết

  • 3ds Max
  • access
  • Adobe Illustrator
  • AI
  • android
  • Articulate Storyline
  • autoit
  • Bài thuốc
  • Cây xanh
  • Cây xanh trong nhà
  • CI Framework
  • Clip ca nhạc
  • Công nghệ Mobile
  • Công nghệ mới
  • Công nghệ số
  • css
  • DotnetNuke
  • Download
  • Đào tạo CorelDraw chuyên nghiệp
  • Đào tạo photoshop chuyên nghiệp
  • Định hướng lập trình
  • Đọc sách
  • excel
  • facebook
  • Foxpro
  • Giải pháp excel chuyên nghiệp
  • Giải trí
  • Giáo dục
  • Giới thiệu Phần mềm
  • Google Apps Script
  • Google Docs
  • Google drive
  • Google Sheets
  • Google Slide
  • HAcker
  • Hàng khuyến mại
  • hay
  • Hệ thống Elearning Moodle
  • Học tiếng anh
  • Học từ Youtobe
  • html
  • Hướng dẫn xây dựng và quản lý JOOMLA
  • Imacro
  • ios apple
  • Iphone
  • Khoa học dữ liệu
  • Khóa học hay
  • Khóa học trực tuyến
  • Kiểm thử phần mềm
  • Kiến thức cơ bản
  • Kiến thức cuộc sống
  • Kinh doanh
  • Kỹ năng
  • lập trình
  • Lập trình .NET
  • Lập trình AngularJS
  • Lập trình assembly
  • Lập trình di động
  • Lập trình Java
  • Lập trình Javascript
  • Lập trình Nodejs
  • Lập trình PHP
  • Machine Learning
  • Microsoft Teams
  • MP3
  • Nấu ăn
  • Nét xinh
  • Ôn luyện thi chứng chỉ MOS
  • phần cứng
  • Phần mềm cho Bé và Cha mẹ
  • PHP tool
  • powerpoint
  • Python
  • Quản trị cơ sở dữ liệu SQL
  • Quản trị dự án-công việc hiệu quả
  • Quản Trị Mạng
  • Sách nói
  • Sách nổi tiếng - Best Seller
  • Sáng tạo
  • SEO-Tối ưu công cụ tìm kiếm
  • skype
  • SPSS
  • Suy ngẫm hay
  • Sức khỏe
  • Symfony Framework
  • tết
  • Thiết kế đồ họa
  • Tin hay
  • Tin học Văn phòng
  • Toeic 500-700
  • Tranh treo
  • Unity 3D
  • vba
  • visio
  • web
  • word
  • wordpress
  • Xây dựng bài giảng điện tử
  • zalo

Nhóm Zalo CÔNG NGHỆ

Nhóm Zalo CÔNG NGHỆ Hiện nay có rất nhiều công việc mà bất cứ ai cũng có thể làm tốt khi không yêu cầu quá nhiều kiến thức chuyên môn, như: Bán hàng chẳng hạn. Ngồi một chỗ, với điện thoại và laptop là bạn có thể bán hàng 63 tỉnh thành, thậm chí toàn thế giới. Còn nếu bạn chưa biết bán hàng sao cho hiệu quả thì vào nhóm: HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN.

Bảo hiểm nhân thọ - bảo vệ người trụ cột

Bảo hiểm nhân thọ - bảo vệ người trụ cột HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN-TẬN TÂM-CHẤT LƯỢNG © 2014. All Rights Reserved.

Designed by [email protected] Tel: 098 909 5293

Pages

Từ khóa » Câu Lệnh Tấn Công Sql Injection