Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 96 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
96
Dung lượng
2,47 MB
Nội dung
Ketnooi.com vi su nghiep giao duc SQL Injection Tấn công cách phòng tránh KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Các Hệ thống thông tin HÀ NỘI - 2010 SQL Injection – Tấn công cách phòng tránh Khóa luận tốt nghiệp - 2010 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Phạm Thanh Cường SQL Injection Tấn công cách phòng tránh KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Các hệ thống thông tin Cán hướng dẫn: TS Nguyễn Hải Châu HÀ NỘI - 2010 SQL Injection – Tấn công cách phòng tránh Khóa luận tốt nghiệp - 2010 Lời cảm ơn Lời em muốn gửi lời biết ơn chân thành tới thày Nguyễn Hải Châu Trong suốt thời gian thực khóa luận thày tạo điều kiện cho em thời gian giúp đỡ quý báu kiến thức, dẫn, định hướng tài liệu tham khảo quý báu Và sau em muốn gửi lời biết ơn chân thành tới toàn thể thày cô trường Các thày cô người có kiến thức sâu rộng, nhiệt tình với sinh viên, hết thày cô gương sáng nghị lực, lòng say mê khoa học, trực cho chúng em Những lời biết ơn thân thương xin kính gửi tới bố mẹ Bố mẹ cho khứ tương lai Cám ơn người bạn tốt tập thể K51CC, người bạn chia sẻ niềm vui, nỗi buồn suốt quãng đời sinh viên Kỉ niệm bạn kỉ niệm đẹp thời sinh viên giảng đường đại học Cuối em xin kính chúc thày cô toàn thể bạn sinh viên trường Đại học Công nghệ sức khỏe dồi dào, đạt thành công đường học tập nghiên cứu khoa học Chúc trường ta sớm trở thành cờ đầu giáo dục nước nhà Quốc tế SQL Injection – Tấn công cách phòng tránh Khóa luận tốt nghiệp - 2010 Tóm tắt nội dung Theo báo cáo an ninh mạng gần đây, Whitehat Security(1) hay trang Verizon Business(2), Sans Institute(3), … cho thấy mức độ phát triển nhanh chóng, tính nghiêm trọng lỗ hổng bảo mật quan tâm chưa mức tổ chức tới vấn đề SQL Injection vấn đề an ninh ứng dụng Web nhấn mạnh báo cáo Khóa luận có tên “SQL Injection – công cách phòng tránh”, nhằm mục đích trình bày hình thái công SQL Injection lên ứng dụng Web, từ rút mô hình kèm theo khuyến nghị cho việc phát triển ứng dụng Web an toàn Nội dung khóa luận trình bày xoay quanh ba nội dung Thứ nguồn gốc hình thành điểm yếu SQL Injection mã nguồn ứng dụng cách nhận biết Thứ hai phương pháp sử dụng để thăm dò, khai thác, lợi dụng điểm yếu để tiến hành công vào ứng dụng web Thứ ba khuyến nghị việc xây dựng ứng dụng Web, kèm theo đề xuất mô hình phát triển ứng dụng Web an toàn (1): http://www.whitehatsec.com/home/assets/presentations/09PPT/PPTstats051909.pdf http://www.whitehatsec.com/home/assets/presentations/09PPT/PPT_statsfall09_8th.pdf (2):http://www.verizonbusiness.com/resources/security/reports/2009_databreach_rp.pdf (3):http://www.sans.org/top-cyber-security-risks/ SQL Injection – Tấn công cách phòng tránh Khóa luận tốt nghiệp - 2010 Mục lục Chương Đặt vấn đề 1.1 Đặc trưng ứng dụng sử dụng sở liệu 1.2 SQL Injection tính nghiêm trọng vấn đề an ninh sở liệu 1.2.1 Khái niệm SQL Injection: 1.2.2 SQL Injection vấn đề an ninh sở liệu Chương SQL Injection cách công phổ biến 14 2.1 Nhận diện điểm yếu SQL injection ứng dụng Web 14 2.1.1 Thăm dò dựa phản hồi 14 2.1.2 Cơ chế sinh truy vấn SQL bên ứng dụng phương pháp chèn truy vấn SQL 17 2.2 Các phương pháp công phổ biến 20 2.2.1 Tấn công khai thác liệu thông qua toán tử UNION 20 2.2.2 Khai thác thông qua câu lệnh điều kiện 26 2.2.3 Blind SQL Injection – phương thức công nâng cao 29 2.2.4 Vấn đề qua mặt lọc tham số đầu vào 40 2.2.5 Một số phương pháp qua mặt lọc tường lửa Web 45 Chương Phòng chống SQL Injection 51 3.1 Phòng chống từ mức xây dựng mã nguồn ứng dụng 51 3.1.1 Làm liệu đầu vào 51 3.1.2 Xây dựng truy vấn theo mô hình tham số hóa 54 3.1.3 Chuẩn hóa liệu 62 3.1.4 Mô hình thiết kế mã nguồn tổng quát 63 3.2 Các biện pháp bảo vệ từ mức tảng hệ thống 67 3.2.1 Các biện pháp bảo vệ tức thời 67 3.2.2 Các biện pháp bảo vệ database 71 3.3 Đề xuất số giải pháp 72 Phụ lục: 74 Cấu hình ModSecurity phòng chống SQL Injection 74 Cài đặt 74 SQL Injection – Tấn công cách phòng tránh Khóa luận tốt nghiệp - 2010 Cấu hình 76 2.1 Cấu hình tổng quát 77 2.2 Cấu trúc luật 81 Tài liệu tham khảo 94 SQL Injection – Tấn công cách phòng tránh Khóa luận tốt nghiệp - 2010 Bảng tóm tắt ký hiệu viết tắt Ký hiệu Database DBMS WAF SQL SQL Injection – Tấn công cách phòng tránh Diễn giải Cơ sở liệu Database Management System (hệ quản trị Cơ sở liệu) Web Application Firewall (tường lửa cho ứng dụng Web) Structured Query Language (Ngôn ngữ truy vấn có cấu trúc) Khóa luận tốt nghiệp - 2010 Chương Đặt vấn đề 1.1 Đặc trưng ứng dụng sử dụng sở liệu Không khó để nhận tại, ứng dụng phổ biến chiếm thị phần doanh thu cao ứng dụng hỗ trợ tính quản lý Dữ liệu thứ sống hoạt động nghiệp vụ Chính lý đó, ứng dụng nghiệp vụ xây dựng mô hình phát triển gắn liền với sở liệu An toàn liệu đặt nặng lên tính an toàn bảo mật ứng dụng Web kết nối tới sở liệu Các mô hình phát triển ứng dụng Web sử dụng phổ biến 3-tier, có số cải tiến, mở rộng mô hình nhằm mục đích riêng Hình 1.1 – Mô hình ứng dụng 3-tier Hình 1.2 – Mô hình ứng dụng 4-tier Các mô hình có số điểm chung, database server làm nhiệm vụ lưu trữ liệu, database hồi đáp truy vấn liệu xây dựng SQL Injection – Tấn công cách phòng tránh Khóa luận tốt nghiệp - 2010 theo chuẩn (ví dụ SQL) Mọi thao tác xử lý liệu input, output database server ứng dụng web tầng Logic xử lý Các vấn đề an ninh phát sinh đa phần nằm tầng 1.2 SQL Injection tính nghiêm trọng vấn đề an ninh sở liệu 1.2.1 Khái niệm SQL Injection: SQL Injection (còn gọi SQL Insertion) hình thức công truy vấn SQL ứng dụng bị chèn thêm tham số đầu vào “không an toàn” người dùng nhập vào, từ mã lệnh gửi tới máy chủ database để phân tích cú pháp thực thi Hình thái SQL Injection bao gồm việc chèn trực tiếp mã vào tham số mà ghép vào câu lệnh SQL (quá trình gọi sinh truy vấn SQL động) để tạo thành truy vấn ứng dụng gửi tới máy chủ database Một cách công khác trực tiếp hơn, chèn mã độc vào xâu mà đích đến việc lưu trữ bảng từ điển liệu (metadata) Khi chuỗi ghép vào câu lệnh SQL đoạn mã chạy Khi ứng dụng Web thất bại việc lọc tham số đầu vào (được dùng làm nguyên liệu cho trình sinh SQL động), dùng hình thức tham số hóa (parameterize) kẻ công dễ dàng điều chỉnh trình xây dựng truy vấn SQL Một kẻ công sửa câu truy vấn SQL, truy vấn SQL muốn thực thi với quyền người sở hữu ứng dụng, thiệt hại gây tùy theo quyền hạn cấp SQL Injection dạng công dễ thực hiện, hầu hết thao tác người công cần thực với trình duyệt web, kèm theo ứng dụng proxy server Chính đơn giản học cách tiến hành công Lỗi bắt nguồn từ mã nguồn ứng dụng web từ phía database, thành phần ứng dụng mà người dùng tương tác để điều khiển nội dung (ví dụ : form, tham số URL, cookie, tham số referrer, user-agent, …) sử dụng để tiến hành chèn truy vấn có hại 1.2.2 SQL Injection vấn đề an ninh sở liệu a Các thống kê an ninh SQL Injection – Tấn công cách phòng tránh Khóa luận tốt nghiệp - 2010 Chúng ta xem xét báo cáo an ninh ứng dụng Web gần Whitehat, tổ chức có uy tín việc nghiên cứu hỗ trợ vấn đề an ninh mạng Thống kê 10 lỗi bảo mật nghiêm trọng nhất: Trích từ nguồn : http://community.whitehatsec.com/home/resource/stats.html Thống kê 10 lỗ hổng bảo mật phổ biến xuất website khảo sát: Kết thống kê trình bày tháng 3/2008: Hình 1.3 – thống kê 10 điểm yếu phổ biến (2008) Kết thống kê trình bày tháng 2/2009: Hình 1.4 – thống kê 10 điểm yếu phổ biến (2009) Thống kê thời gian trung bình cần để khắc phục lỗ hổng bảo mật kể SQL Injection – Tấn công cách phòng tránh 10 Khóa luận tốt nghiệp - 2010 Ta sử dụng SecRule ARGS “select” deny Một số biến tập có trường cố định (vd: GEO có country_name, city,…) số lại có trường không cố định, tùy thuộc vào nội dung client gửi đến Trong biến tập, truy cập tới trường không tồn trường không gán giá trị mà không phát sinh lỗi Điều cần ghi nhớ trường hợp debug, bỏ qua khả trường giá trị biến tập không tồn không gán giá trị 2.2.2 Lưu trữ liệu request Có ba loại biến tập ModSecurity sử dụng để lưu trữ lâu dài Thông thường, biến hết hiệu lực request thời xử lý hoàn tất Tuy nhiên số trường hợp, lại cần lưu giữ chúng lại sử dụng chúng thao tác với request sau Ba loại biến tập sử dụng cho mục đích lưu trữ IP, SESSION, USER Biến tập IP dùng để lưu thông tin user thông qua địa IP Chúng ta sử dụng cho số mục đích phát user request nhiều lần vào tài nguyên, số lần request user, giả sử để chống DOS Trước sử dụng biến trên, cần khởi tạo chúng cách sử dụng action tên initcol, ví dụ: SecAction initcol:ip=%{REMOTE_ADDR},nolog,pass Trong đó, REMOTE_ADD biến lưu địa IP client gửi request Để lưu trữ biến, cần cấu hình thư mục liệu cho ModSecurity thông qua thị SecDataDir, ví dụ: SecDataDir /var/log/apache2/modsec_data Điều cần lưu ý thư mục định thị nêu phải cho phép người dùng Apache ghi liệu lên Sau cấu hình thư mục lưu trữ liệu, khởi tạo biến, ta thao tác với giá trị biến, gán giá trị thông qua action tên setvar Trong phần giới thiệu biến tập ta sử dụng action setvar SQL Injection – Tấn công cách phòng tránh 82 Khóa luận tốt nghiệp - 2010 2.2.3 Biến tập giao tác (transaction collection) Biến TX dạng biến tập giao tác, biến gán giá trị vòng đời request/response Chúng ta sử dụng TX để tạo biến riêng nhằm lưu liệu vòng chu kỳ transaction Xét số luật sau: SecRule REQUEST_URI “select” “pass,setvar:tx.score=+1” SecRule REQUEST_URI “passwd” “pass,setvar:tx.score=+2” SecRule TX:SCORE “@gt 3” deny Bộ luật mô tả sau, thực kiểm tra URI request, phát có chứa “select” tăng biến SCORE lên 1, phát thấy có “passwd” tăng biến SCORE lên 2, kiểm tra thấy biến SCORE lớn chặn request lại Cấu trúc action setvar cho phép tạo cập nhật biến Để hủy biến, sử dụng action setvar thêm dấu chấm than phía trước biến, cụ thể: setvar:!tx.score Biến tập TX chứa trường định nghĩa sẵn (built-in) TX:0, TX:1, … TX:9 Với trường hợp TX:0 giá trị khớp sử dụng toán tử @rx @pm, biến TX:1 đến TX:9 chứa giá trị kiểu biểu thức quy thu ước lượng biểu thức quy kèm theo action capture 2.2.4 Thực thao tác đồng thời nhiều biến Chúng ta thực so khớp biểu thức quy với vài biến lúc, ví dụ so khớp request header request argument xem có xuất “select” hay không cần dùng dấu | (pipe) để ngăn cách biến cần thực so khớp, ví dụ: SecRule ARGS|REQUEST_HEADERS “select” deny 2.2.5 Việc sử dụng dấu nháy Trong cấu trúc luật, phần chuỗi action biểu thức quy không thiết phải bao cặp dấu nháy (như ví dụ trên) Nếu chuỗi action biểu thức quy không chứa khoảng trắng (vd: dấu cách) bên không cần sử dụng dấu nháy để bọc chuỗi Ngược lại, cần sử dụng dấu nháy kép để bọc chuỗi có chứa khoảng trắng bên Ví dụ: SQL Injection – Tấn công cách phòng tránh 83 Khóa luận tốt nghiệp - 2010 SecRule REQUEST_URI “waitfor delay” deny Một trường hợp khác xảy ra, dấu nháy xuất với tư cách thành phần hợp lệ chuỗi, ví dụ với thông báo log “someone’s try to hack us”, cần sử dụng dấu \ (backlash) để escape dấu đó, ví dụ ta có “someone\’s try to hack us” Ngoài dấu nháy, ký tự đặc biệt khác thường gặp xử lý biểu thức quy cần escape, ví dụ dấu chấm, dấu sao, dấu mở ngoặc đơn, … 2.2.6 Xây dựng chuỗi luật Chuỗi luật (chained rules) sử dụng để kết hợp luật lại cho kiện khớp luật phải thỏa mãn điều kiện vài điều kiện thay điều kiện đơn lẻ Sử dụng action có tên “chain” cho phép ghép luật lại thành chuỗi xử lý Một request/response khớp với chuỗi luật khớp với tất luật thành viên Từ khóa chain có tác dụng tương tự phép thao tác logic AND mệnh đề điều kiện ngôn ngữ lập trình khác Ví dụ với điều kiện đặt trên, ta xây dựng chuỗi luật sau: ## chặn kết nối sử dụng trình hỗ trợ download Flashget ## khoảng thời gian trước 16h SecRule REQUEST_HEADERS:User-Agent “FlashGet” “deny,chain” SecRule TIME_HOUR “@lt 16” Một điều cần ý, có luật chuỗi định action có tính ngắt, ví dụ deny, có luật khác luật định action này, có lỗi xẩy Ngoài deny, metadata action khác log, msg, id, rev, tag, severity, logdata, định luật chuỗi Có thể ghép nhiều luật thành chuỗi không hai luật ví dụ Khi chuỗi có đặc điểm sau: Luật mô tả đầy đủ hành động cần thiết để xử lý request/response khớp, kèm theo action “chain” Các luật trừ luật cuối cùng, chứa action “chain” Luật cuối chuỗi, không chứa action SQL Injection – Tấn công cách phòng tránh 84 Khóa luận tốt nghiệp - 2010 Các chuỗi luật phức tạp xây dựng, đề cập đến nội dung mở rộng sau 2.2.7 Biểu thức quy Biểu thức quy yếu tố sử dụng để xây dựng nên luật ModSecurity Toán tử @rx (regular expression) toán tử mặc định, sử dụng toán tử khác định Ngoài việc xây dựng trực tiếp mẫu so sánh hoàn toàn biểu thức quy, tận dụng số toán tử hỗ trợ để giảm nhẹ công việc, ví dụ: Toán tử Tác dụng Ví dụ @beginsWith Khớp chuỗi bắt đầu SecRule REQUEST_LINE “!@beginsWith GET” với chuỗi định @containts Khớp chuỗi có chứa SecRule REQUEST_LINE chuỗi định vị “@contains select” trí @containsWord Khớp xâu chứa từ SecRule ARGS “@containsWord định “Từ” from” hiểu đoạn xâu ngăn nhiều ký tự chữ,số @endsWith Khớp xâu kết thúc xâu SecRule ARGS “@endsWith ” định @streq Khớp xâu giống hoàn toàn SecRule REMOTE_HOST “@streq victim\.com” xâu định @within Khá giống @contains, khác so khớp xảy biến cần so xuất bên xâu định SecRule REMOTE_USER “@within cuong,nam,an” (sẽ khớp remote user cuong, nam an) Các phép khớp xâu nhạy cảm kiểu chữ với xâu định, cụ thể, kết khác với xâu định Select seLect Tuy nhiên, toán tử lại không phân biệt kiểu, tức @within hay wiThin hoạt động giống SQL Injection – Tấn công cách phòng tránh 85 Khóa luận tốt nghiệp - 2010 Ngoài việc so khớp chuỗi ký tự, cần đề cập đến việc sử dụng toán tử để so sánh số: Toán tử Toán tử đại số Ví dụ tương đương @eq = SecRule RESPONSE_STATUS “@eq 200” @ge ≥ SecRule RESPONSE_STATUS “@ge 400” @gt > SecRule RESPONSE_STATUS “@gt 399” @le ≤ SecRule RESPONSE_STATUS “@le 199” @lt < SecRule RESPONSE_STATUS “@lt 200” 2.2.8 Một số thao tác nâng cao với biến tập Đếm số lượng đối tượng biến tập Chúng ta thực đếm số đối tượng biến tập cách đặt dấu “&” vào trước biến tập Giả sử cần chặn request mà không gửi cookie: SecRule &REQUEST_COOKIE “@eq 0” Ngoài sử dụng đặc tính để chặn loại hình qua mặt WAF, phương pháp có tên gọi “HTTP parameter pollution” đề cập chương phần qua mặt lọc tham số đầu vào Phương pháp tìm cách tách chuỗi giá trị tham số thành nhiều cụm, lúc xuất hai tham số có tên, ví dụ với URL: http://site.com/search.php?keyword=select&keyword=version()-có thể lập luật để cản phương pháp này, ví dụ: SecRule &ARGS:keyword “@ge 2” Lọc trường biến tập sử dụng biểu thức quy Thay việc phải thao tác với tất trường định đích danh trường, ta sử dụng biểu thức quy để thao tác với số trường có tên tương đồng Giả sử client submit form đăng kí tài khoản, có trường firstname, lastname, để ngăn ngừa nguy SQL Injection đó, ta xây dựng luật dạng : SecRule ARGS:/*name/ “select” deny SQL Injection – Tấn công cách phòng tránh 86 Khóa luận tốt nghiệp - 2010 Luật bị vi phạm query string chứa tham số có tên chứa “name” giá trị chứa “select”, không vi phạm hai điều kiện query string hợp lệ (đối với luật trên) Cấu trúc tham chiếu đến trường biến tập sử dụng biểu thức quy có khác so với thông thường cặp dấu sổ chéo / (forward slash) Ta dùng cặp dấu để thông báo cho engine luật chuỗi bên cặp dấu biểu thức quy Nếu cặp dấu sổ chéo trường có tên “*name” tham chiếu Các hàm chuyển đổi ModSecurity cung cấp số hàm chuyển đổi (transformation) sử dụng cho biến biến tập Các trình biến đổi liệu thực liệu cần thao tác, request/response ban đầu hoàn toàn không bị chỉnh sửa Để áp dụng hàm chuyển đổi, cần định tiền tố t: sau tên hàm cần gọi, đặt cụm vào danh sách action luật Giả sử muốn chuyển kiểu tất tham số querystring/POST sang dạng chữ thường trước tiến hành khớp với biểu thức quy xây dựng luật sau: SecRule REQUEST_URI “[...]... Injection – Tấn công và cách phòng tránh 13 Khóa luận tốt nghiệp - 2010 Chương 2 SQL Injection và các cách tấn công phổ biến 2.1 Nhận diện điểm yếu SQL injection trong ứng dụng Web Công việc nhận diện điểm yếu này là công việc đầu tiên trong chuỗi các thao tác cần để khắc phục điểm yếu SQL Injection trong ứng dụng Công việc này được thực hiện tương tự các thao tác hacker tiến hành thăm dò lỗi SQL Injection. .. hơn Trên thực tế, các cuộc tấn công SQL Injection thường nhắm đến các cơ sở dữ liệu mang tính thương mại, ví dụ các trang web SQL Injection – Tấn công và cách phòng tránh 12 Khóa luận tốt nghiệp - 2010 thương mại điện tử Thông thường, các cuộc tấn công này thường sẽ tiến hành việc sửa đổi nội dung của database đối tượng và chèn các đoạn mã JavaScript độc Bản chất điểm yếu SQL Injection là xuất hiện từ... thâm nhập sâu hơn vào trong mạng lưới của tổ chức sở hữu ứng dụng Web đang bị tấn công Chúng ta sẽ xét một số phương pháp tấn công phục vụ hai mục đích này 2.2.1 Tấn công khai thác dữ liệu thông qua toán tử UNION Khai thác thông tin thông qua việc sử dụng UNION là một trong 2 nhánh chính của việc khai thác dữ liệu thông qua lỗi SQL Injection Các SQL Injection – Tấn công và cách phòng tránh 20 Khóa luận... sau: Chèn vào giữa truy vấn: Chèn vào giữa truy vấn là mô hình chỉ đơn thuần thao tác với tham số, không hề tác động đến cấu trúc và các thành phần của truy vấn gốc Việc chèn như minh họa ở phần a chính là chèn vào giữa truy vấn Mô hình này có thể khái quát như sau: SQL Injection – Tấn công và cách phòng tránh 18 Khóa luận tốt nghiệp - 2010 Hình 2.1 tham số chèn vào giữa truy vấn Chèn và ngắt truy... Injection – Tấn công và cách phòng tránh 28 Khóa luận tốt nghiệp - 2010 vấn mà đòi hỏi chi phí thực thi cao, ví dụ những truy vấn ‘lớn’ này như các phép truy vấn trên từ điển dữ liệu (data dictionary hay metadata) Các vấn đề cụ thể của mô hình này sẽ được trình bày chi tiết trong nội dung về Blind SQL Injection 2.2.3 Blind SQL Injection – phương thức tấn công nâng cao a Tổng quan Blind SQL Injection. .. vấn c Thực hiện tấn công blind SQL Injection dựa trên độ trễ truy vấn Tấn công Blind SQL Injection dựa vào thời gian phản hồi là cách tiến hành khai thác các lỗi Blind SQL Injection mạnh nhất Trong nhiều trường hợp tuy truy vấn có chứa điểm yếu, nhưng kết quả của truy vấn “sạch” với truy vấn “độc hại” không có sự khác biệt đáng kể, do đó rất khó để sử dụng response-based Blind SQL Injection Bản chất... @mysql_query($query); … ?> Với đoạn xử lý trên, các trường username và password không thể để trống, tuy nhiên không nhất thiết phải chèn nhiều mệnh đề OR, chúng ta chỉ cần đảm bảo có giá trị trong SQL Injection – Tấn công và cách phòng tránh 19 Khóa luận tốt nghiệp - 2010 hai trường đó và sử dụng comment để ngắt truy vấn sau khi xuất hiện mệnh đề OR 1=1 đầu tiên, ví dụ với username là admin’ or 1=1 và. .. quyết Có một vài mô hình đã được nghiên cứu và được sử dụng để phân biệt kết quả trong hai trường hợp như: - Mô hình dựa trên độ trễ phản hồi Mô hình dựa trên nội dung phản hồi Với mỗi mô hình, chúng đều có ưu điểm, nhược điểm và một vài điều kiện cần cân nhắc khi áp dụng Chúng ta sẽ xem xét các đặc điểm này sau đây a Mô hình dựa trên nội dung phản hồi SQL Injection – Tấn công và cách phòng tránh 26 Khóa... diễn ở dạng mã hóa URL là: “%75%73%65%72%28)”, thay vào vị trí cột 2, ta có kết quả: SQL Injection – Tấn công và cách phòng tránh 25 Khóa luận tốt nghiệp - 2010 Hình 2.8 khai thác thông tin username Kết quả cho thấy user hiện tại thực hiện truy vấn là srvhpci1_pinknew@localhost 2.2.2 Khai thác thông qua các câu lệnh điều kiện Ý tưởng chung của dạng tấn công dựa trên các câu lệnh điều kiện này chính là... hacker trong việc khai SQL Injection – Tấn công và cách phòng tránh 15 Khóa luận tốt nghiệp - 2010 thác thông tin từ database của ứng dụng Ngoài cách hiển thị chi tiết này ra Webserver còn có vài lựa chọn sau: Nội dung lỗi được giấu đi nhằm mục đích gỡ lỗi trong mã nguồn Trả về một mã lỗi HTTP, ví dụ 500 (Internal Server Error), 302 (redirect), … ứng dụng bắt lỗi, xử lý nó bằng cách không trả về kết