Luận văn thạc sĩ VNU: Phân tích tự động phát hiện lỗ hổng SQL Injection và XSS

Luận văn thạc sĩ nghiên cứu vnu uet phân tích tự động các website để phát hiện các lỗ hổng tiêm nhiễm sql và xss, đánh giá hiện trạng, phân tích vấn đề, đề xuất biện pháp hoàn

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sĩ

2017

72
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

1. CHƯƠNG I: TỔNG QUAN VỀ LỖ HỔNG BẢO MẬT SQLI, XSS

1.1. Lỗ hổng an ninh ứng dụng web

1.2. Lỗ hổng an ninh SQLi. Giới thiệu lỗ hổng SQLi

1.3. Phương pháp phát hiện lỗ hổng SQLi

1.4. Phương pháp khai thác SQLi

1.5. Phương pháp phòng chống SQLi. Lỗ hổng an ninh XSS

1.6. Giới thiệu lỗ hổng an ninh XSS

1.7. Phân loại XSS

1.8. Quá trình phát hiện lỗ hổng XSS

1.9. Cách thức phòng chống lỗ hổng XSS

2. CHƯƠNG II: CÁC GIẢI PHÁP QUÉT LỖ HỔNG ỨNG DỤNG WEB

2.1. Tổng quan công cụ quét lỗ hổng ứng dụng Web

2.2. Giới thiệu công cụ quét lỗ hổng ứng dụng Web

2.3. Phương thức hoạt động của công cụ quét lỗ hổng an ninh

2.4. Giới thiệu một số công cụ quét phổ biến hiện nay

2.5. Acunetix Web Vulnerability Scanner

3. CHƯƠNG III: XÂY DỰNG PHẦN MỀM PHÂN TÍCH TỰ ĐỘNG WEBSITE PHÁT HIỆN VÀ KHAI THÁC LỖ HỔNG SQLI VÀ XSS

3.1. Mô hình kiến trúc hệ thống

3.2. Sơ đồ phân rã chức năng

3.3. Các thuật toán chính

3.3.1. Thuật toán dum URL

3.3.2. Thuật toán phát hiện lỗ hổng SQLi

3.3.3. Thuật toán phát hiện lỗ hổng XSS

3.3.4. Thuật toán khai thác lỗ hổng SQLi

3.3.5. Thuật toán khai thác Blind SQLi

3.3.6. Thuật toán khai thác lỗ hổng XSS

3.3.7. Thuật toán quét cổng

3.3.8. Thuật toán bruteforce tài khoản FTP

3.4. Xây dựng các mô-đun chức năng

3.4.1. Mô-đun dump URL

3.4.2. Mô-đun phát hiện lỗ hổng SQLi

3.4.3. Mô-đun khai thác lỗ hổng SQLi

3.4.4. Mô-đun phát hiện lỗ hổng XSS

3.4.5. Mô-đun khai thác lỗ hổng XSS

3.4.6. Mô-đun dò quét lỗ hổng nhiều website

3.4.7. Mô-đun dò quét lỗ hổng nhiều URL

3.4.8. Mô-đun phát hiện file nhạy cảm

3.4.9. Mô-đun quét cổng

3.4.10. Mô-đun brute force tài khoản đăng nhập dịch vụ FTP

3.4.11. Mô-đun brute force tài khoản đăng nhập dịch vụ RDP

3.4.12. Mô-đun thiết lập Proxy

3.4.13. Mô-đun lập lịch

4. CHƯƠNG IV: THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

4.1. Thử nghiệm phần mềm TH-Scanner

4.2. Thử nghiệm phát hiện và khai thác lỗ hổng SQLi

4.3. Thử nghiệm phát hiện và khai thác lỗ hổng XSS

4.4. Thử nghiệm khai thác các lỗ hổng an ninh khác

4.5. So sánh với các phần mềm quét khác

4.6. So sánh tính năng

4.7. So sánh hiệu quả

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về lỗ hổng bảo mật SQLi và XSS trong ứng dụng web

Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ, việc bảo mật ứng dụng web trở thành một vấn đề cấp thiết. Lỗ hổng SQL injection (SQLi) và Cross-site scripting (XSS) là hai trong số những lỗ hổng phổ biến nhất, gây ra nhiều thiệt hại cho người dùng và tổ chức. Theo thống kê, SQLi chiếm khoảng 15% các cuộc tấn công, trong khi XSS chiếm 18%. Việc phát hiện và khắc phục các lỗ hổng này là rất quan trọng để bảo vệ thông tin nhạy cảm của người dùng.

1.1. Lỗ hổng SQL injection Nguyên nhân và tác hại

SQL injection là một kỹ thuật tấn công mà kẻ tấn công chèn mã SQL độc hại vào các truy vấn của ứng dụng. Điều này có thể dẫn đến việc truy cập trái phép vào cơ sở dữ liệu, xóa dữ liệu hoặc thậm chí chiếm quyền điều khiển hệ thống. Các ứng dụng web sử dụng cơ sở dữ liệu như MySQL, SQL Server thường dễ bị tổn thương trước loại tấn công này.

1.2. Lỗ hổng XSS Cách thức hoạt động và ảnh hưởng

Cross-site scripting cho phép kẻ tấn công chèn mã JavaScript độc hại vào trang web, từ đó đánh cắp thông tin người dùng hoặc thực hiện các hành động không mong muốn. XSS có thể gây ra thiệt hại lớn cho cả người dùng và tổ chức, đặc biệt là trong các ứng dụng web thương mại điện tử.

II. Thách thức trong việc phát hiện lỗ hổng SQLi và XSS

Việc phát hiện lỗ hổng SQLi và XSS gặp nhiều thách thức do sự phát triển nhanh chóng của công nghệ web. Các phương pháp tấn công ngày càng tinh vi, khiến cho việc phát hiện trở nên khó khăn hơn. Nhiều công cụ hiện có không đủ khả năng phát hiện tất cả các lỗ hổng, đặc biệt là trong các ứng dụng phức tạp.

2.1. Sự phát triển của các phương pháp tấn công

Kẻ tấn công không ngừng cải tiến kỹ thuật của mình, từ việc sử dụng các mã độc đơn giản đến các kỹ thuật phức tạp hơn như mã hóa và mã hóa ngược. Điều này đòi hỏi các chuyên gia bảo mật phải liên tục cập nhật kiến thức và công cụ của mình.

2.2. Hạn chế của các công cụ phát hiện hiện tại

Nhiều công cụ phát hiện lỗ hổng hiện tại chỉ tập trung vào một loại lỗ hổng nhất định hoặc không thể phát hiện các lỗ hổng trong các ứng dụng phức tạp. Điều này dẫn đến việc nhiều lỗ hổng vẫn tồn tại mà không được phát hiện.

III. Phương pháp phát hiện lỗ hổng SQLi và XSS hiệu quả

Để phát hiện lỗ hổng SQLi và XSS, cần áp dụng các phương pháp và công cụ hiện đại. Việc sử dụng các thuật toán tự động hóa có thể giúp phát hiện nhanh chóng và chính xác hơn. Các công cụ như Acunetix, SQLMap, và Burp Suite là những ví dụ điển hình.

3.1. Sử dụng công cụ tự động hóa trong phát hiện lỗ hổng

Các công cụ tự động hóa giúp giảm thiểu thời gian và công sức trong việc phát hiện lỗ hổng. Chúng có khả năng quét hàng loạt URL và phát hiện các lỗ hổng một cách nhanh chóng và hiệu quả.

3.2. Kết hợp nhiều phương pháp phát hiện

Kết hợp nhiều phương pháp phát hiện khác nhau, bao gồm cả phân tích mã nguồn và kiểm tra hành vi, có thể giúp tăng cường khả năng phát hiện lỗ hổng. Điều này giúp đảm bảo rằng không có lỗ hổng nào bị bỏ sót.

IV. Ứng dụng thực tiễn và kết quả nghiên cứu về lỗ hổng SQLi và XSS

Nghiên cứu về lỗ hổng SQLi và XSS đã dẫn đến việc phát triển nhiều công cụ và phương pháp mới. Các thử nghiệm thực tế cho thấy rằng việc phát hiện và khai thác lỗ hổng có thể được thực hiện hiệu quả hơn với các công cụ tự động hóa.

4.1. Kết quả từ các thử nghiệm thực tế

Các thử nghiệm với hàng ngàn URL cho thấy rằng công cụ phát hiện mới có thể phát hiện lỗ hổng SQLi và XSS với tỷ lệ chính xác cao hơn so với các công cụ hiện có. Điều này chứng tỏ rằng việc đầu tư vào nghiên cứu và phát triển công cụ là cần thiết.

4.2. Ứng dụng trong các tổ chức và doanh nghiệp

Nhiều tổ chức đã áp dụng các công cụ phát hiện lỗ hổng mới để bảo vệ hệ thống của mình. Việc này không chỉ giúp bảo vệ thông tin nhạy cảm mà còn nâng cao uy tín và độ tin cậy của tổ chức trong mắt khách hàng.

V. Kết luận và tương lai của nghiên cứu về lỗ hổng SQLi và XSS

Nghiên cứu về lỗ hổng SQLi và XSS vẫn đang tiếp tục phát triển. Các công nghệ mới như trí tuệ nhân tạo và học máy có thể được áp dụng để cải thiện khả năng phát hiện lỗ hổng. Tương lai của bảo mật ứng dụng web sẽ phụ thuộc vào khả năng thích ứng với các phương pháp tấn công mới.

5.1. Xu hướng phát triển trong bảo mật ứng dụng web

Xu hướng hiện nay là tích hợp trí tuệ nhân tạo vào các công cụ bảo mật để tự động hóa quá trình phát hiện và khắc phục lỗ hổng. Điều này hứa hẹn sẽ mang lại nhiều lợi ích cho ngành bảo mật.

5.2. Tầm quan trọng của việc nâng cao nhận thức về bảo mật

Nâng cao nhận thức về bảo mật trong cộng đồng và các tổ chức là rất quan trọng. Việc đào tạo và cung cấp thông tin về các lỗ hổng bảo mật sẽ giúp giảm thiểu rủi ro và bảo vệ thông tin cá nhân của người dùng.

22/07/2025
Luận văn thạc sĩ vnu uet phân tích tự động các website để phát hiện các lỗ hổng tiêm nhiễm sql và xss

Trích đoạn nội dung tài liệu

Đặt vấn đề: Hiện nay cùng với sự phát triển nhanh chóng của công nghệ và ứng dụng web, vấn đề an ninh web đang trở nên cấp thiết nhằm đảm bảo an toàn thông tin cho tất cả ngƣời dùng. Ứng dụng web đã trở thành mục tiêu tấn công phổ biến của tin tặc với các hình thức tấn công ngày càng tinh vi và phức tạp. Theo thống kê trên Zone-h.org, trung bình mỗi ngày có hơn một triệu website bị tấn công, trong đó có hàng trăm website của Việt Nam. Thời gian gần đây liên tục xảy ra nhiều vụ tấn công mạng vào cơ quan chính phủ, cơ sở hạ tầng trọng yếu, tổ chức tài chính gây tổn thất về tài chính, bất ổn chính trị và làm ảnh hƣởng cuộc sống của ngƣời dân.

Trong các cuộc tấn công đó, lỗ hổng bị khai thác nhiều nhất là tiêm nhiễm SQL (SQLi, chiếm 15% các cuộc tấn công lỗ hổng an ninh web) và Cross-site scripting (XSS, chiếm 18%) [19]. Với các lỗ hổng này, tin tặc có thể dễ dàng tấn công, chiếm quyền điều khiển, truy cập vào các nguồn thông tin nhạy cảm, gồm cả thông tin cá nhân ngƣời dùng. Trên thế giới, nhiều tổ chức, cá nhân đã phát triển các phần mềm để phát hiện và khai thác lỗ hổng an ninh web nhƣ: Acunetix, SQLMap, Havij, BurpSuite, ZAP, XSSer, Nmap… Tuy nhiên, đa số các phần mềm này là sản phẩm thƣơng mại, nếu là phiên bản miễn phí sẽ bị giới hạn nhiều tính năng, khó nâng cấp, bảo trì. Ngoài ra, các phần mềm chỉ thực hiện khai thác một lỗ hổng an ninh chuyên biệt hoặc chỉ chú trọng phát hiện lỗ hổng an ninh, chƣa tập trung phần khai thác.

Ví dụ, Acunetix là phần mềm thƣơng mại dùng để dò quét lỗ hổng tầng ứng dụng web nhƣ SQLi và XSS, nhƣng việc thực hiện phân tích XSS không hiệu quả nhƣ các công cụ khác; SQL Map và Havij có khả năng phát hiện và khai thác SQLi tốt nhƣng không dò quét lỗ hổng XSS, không thu thập (crawl) dữ liệu; BurpSuit và ZAP tích hợp nhiều tính năng nhƣng chủ yếu tập trung phần LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 12 phát hiện lỗ hổng an ninh là chính, chƣa tập trung khai thác lỗ hổng; NMap và Xprobe dùng để xác định host sẵn có hoặc các dịch vụ có thể truy cập nhƣng chƣa có khả năng phân tích lỗ hổng an ninh tầng ứng dụng; XSSer, Scott và Sharp chỉ tập trung vào lỗ hổng XSS nhƣng chủ yếu để đề xuất triển khai tƣờng lửa mức ứng dụng, xây dựng chính sách để bảo vệ ứng dụng web. Mục tiêu nghiên cứu: Với sự phổ biến và mức độ nguy hiểm của hai lỗ hổng an ninh website là SQLi và XSS, luận văn lựa chọn đề tài nghiên cứu “Phân tích tự động các Website để phát hiện lỗ hổng tiêm nhiễm SQL và XSS” với mong muốn nghiên cứu cách thức khai thác lỗ hổng an ninh web, đồng thời xây dựng một phần mềm hỗ trợ đắc lực trong quá trình kiểm tra lỗ hổng an ninh, đặc biệt có khả năng phát hiện và khai thác tốt lỗ hổng SQLi và XSS. Ngoài ra, phần mềm này bổ sung thêm một số tính năng nhƣ kiểm tra host tầng mạng, quét cổng, brute force tài khoản đăng nhập FTP và RDP, dò quét các file nhạy cảm, đƣờng dẫn trang đăng nhập của website. Phần mềm đƣợc xây dựng mới từ đầu nhằm mục đích có thể dễ dàng tùy biến chức năng, giao diện theo nhu cầu ngƣời sử dụng, có thể nâng cấp khi cần thiết, đồng thời khắc phục một số nhƣợc điểm của các phần mềm quét hiện có.

Phần mềm kiểm tra lỗ hổng an ninh theo hình thức hộp đen (kiểm tra ứng dụng từ bên ngoài, các dữ liệu đầu vào và các dữ liệu xuất ra mà không cần quan tâm đến hoạt động bên trong cũng nhƣ mã nguồn của ứng dụng), do đó có thể dễ dàng sử dụng với cả những ngƣời không có kiến thức về an ninh mạng. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 13 Nội dung nghiên cứu: - Nghiên cứu tổng quan lỗ hổng an ninh ứng dụng web. - Nghiên cứu nguyên lý, cách thức hoạt động một số công cụ dò quét lỗ hổng an ninh web phổ biến hiện nay (SQL Map, Havij, Acunetix, Burp Suite. - Nghiên cứu phƣơng pháp thu thập, trích xuất cấu trúc một website.

- Nghiên cứu phƣơng pháp phát hiện lỗ hổng an ninh SQLi, XSS. - Nghiên cứu phƣơng pháp khai thác lỗ hổng an ninh SQLi, XSS. - Nghiên cứu xử lý song song quá trình phát hiện và khai thác lỗ hổng SQLi và XSS đồng thời nhiều mục tiêu. - Nghiên cứu phƣơng pháp brute force tài khoản FTP, RDP.

Kết quả nghiên cứu: Luận văn đã xây dựng thành công phần mềm phân tích tự động website, có thể phát hiện và khai thác tốt các lỗ hổng SQLi với Cơ sở dữ liệu (CSDL) MySQL, SQL Server, kỹ thuật Error based, Blind và lỗ hổng XSS; có khả năng phát hiện và khai thác lỗ hổng SQLi và XSS với một số website mà một số phần mềm quét hiện tại không làm đƣợc. Thử nghiệm với 3289 URL có khả năng có lỗi SQLi và XSS, công cụ này có thể phát hiện 767 URL có lỗi SQLi và 100 URL có lỗi XSS, thực hiện trong thời gian nhanh hơn một số phần mềm quét hiện tại. Ngoài ra, phần mềm bổ sung thêm nhiều tính năng hỗ trợ tối đa quá trình dò quét lỗ hổng an ninh web nhƣ: kiểm tra lỗ hổng bảo mật cùng lúc nhiều website; khai thác đồng thời cả lỗi SQLi và XSS; lập lịch kiểm tra lỗ hổng website; Brute Force tài khoản FTP, RDP; tìm đƣờng dẫn thƣ mục nhạy cảm. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 14 Bố cục luận văn: Chƣơng I: Tổng quan về lỗ hổng an ninh ứng dụng web, giới thiệu lỗ hổng SQLi và XSS Giới thiệu tổng quan về các lỗ hổng an ninh ứng dựng web, các hình thức tấn công lỗ hổng SQLi, XSS và các phƣơng pháp khai thác của từng loại tấn công, cách thức ngƣời quản trị, lập trình viên thực hiện để tránh bị tin tặc khai thác các lỗ hổng an ninh trên.

Chƣơng II: Các giải pháp quét lỗ hổng ứng dụng web Giới thiệu về giải pháp quét lỗ hổng và một số công cụ dò quét lỗ hổng an ninh ứng dụng web phổ biến hiện nay, ƣu nhƣợc điểm từng công cụ. Chƣơng III: Xây dựng phần mềm phân tích tự động website phát hiện và khai thác lỗ hổng an ninh SQLi và XSS Trình bày cách thức xây dựng phần mềm phát hiện và khai thác lỗ hổng SQLi và XSS. Xây dựng sơ đồ phân rã chức năng, thuật toán, mô-đun chức năng, thực hiện khai thác các trƣờng hợp cụ thể để khai thác những website có lỗ hổng SQLi và XSS mà những công cụ hiện tại không làm đƣợc, đồng thời tích hợp nhiều tính năng mới. Chƣơng IV: Trình bày kết quả thực nghiệm Thử nghiệm các chức năng của phần mềm và đánh giá hiệu quả hoạt động, so sánh kết quả với một số phần mềm khác.

LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 15 CHƢƠNG I: TỔNG QUAN VỀ LỖ HỔNG BẢO MẬT ỨNG DỤNG WEB, GIỚI THIỆU LỖ HỔNG SQLI, XSS 1. Lỗ hổng an ninh ứng dụng web Ngày nay, với sự phát triển không ngừng của các ứng dụng web thì các cuộc tấn công ứng dụng web cũng phát triển hết sức phức tạp. Điều này đã đặt ra vấn đề cấp thiết là cần làm thế nào để đảm bảo an toàn thông tin cho ứng dụng web, thông tin của ngƣời sử dụng. Hiện tại có khá nhiều phần mềm hỗ trợ lập trình viên, chuyên viên quản trị mạng tìm kiếm lỗ hổng của ứng dụng web.

Tuy nhiên, các phần mềm này không theo kịp sự phát triển nhanh chóng của các ứng dụng web, không thể ngăn chặn hoàn toàn các cuộc tấn công với phƣơng thức đa dạng, nguy hiểm trong bối cảnh lỗ hổng ứng dụng web bị phát hiện ngày càng nhiều. Thống kê cho thấy, hơn 90% các ứng dụng web tồn tại các lỗ hổng an ninh và 75% cuộc tấn công mạng tập trung vào các ứng dụng web [18]. Dự án mở về an ninh ứng dụng web OWASP đã phân loại 10 lỗ hổng ứng dụng web phổ biến và nguy hiểm nhất hiện nay gồm [17]: A1- Nhúng mã (Injection); A2- Xác thực hay quản lý phiên thiếu chính xác; A3- Thực thi mã Script xấu (XSS); A4- Đối tƣợng tham chiếu không an toàn; A5- Sai sót trong cấu hình an ninh; A6- Lộ dữ liệu nhạy cảm; A7- Điều khiển truy cập mức chức năng không an toàn; A8- Tấn công giả mạo (CSRF); A9- Sử dụng thành phần chứa lỗ hổng đã công khai; A10- Chuyển hƣớng và chuyển tiếp không an toàn. Lỗ hổng an ninh SQLi 1.

Giới thiệu lỗ hổng SQLi SQLi là lỗ hổng trong việc kiểm tra dữ liệu đầu vào của các ứng dụng web và các thông báo lỗi của hệ quản trị CSDL trả về, đƣợc tin tặc khai thác bằng cách tiêm các mã SQL để thực thi câu lệnh bất hợp pháp, đăng nhập mà không cần tên tài khoản và mật khẩu, thực hiện truy cập từ xa, xóa dữ liệu, lấy quyền quản trị của máy chủ…. Khai thác lỗ hổng SQLi là một trong những hình thức LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 16 tấn công website phổ biến hiện nay. Đa số ứng dụng web sử dụng hệ quản trị CSDL MySQL, SQL Máy chủ, Oracle, DB2, Sysbase đều có khả năng dính lỗ hổng SQLi. Sơ đồ minh họa việc tấn công SQLi đƣợc mô tả trên Hình 1.

Mỗi khi ngƣời dùng tiến hành đăng nhập vào tài khoản trực tuyến, họ sẽ phải cung cấp thông tin về Username và Password. Trong quy trình kiểm tra và xác nhận tính hợp pháp của tài khoản đó, hệ thống hoặc ứng dụng web tƣơng ứng sẽ chạy 1 câu lệnh truy vấn có dạng nhƣ sau: SELECT * FROM Users WHERE User_id='srinivas' AND Password='mypassword'; Nếu kẻ tấn công chèn đoạn mã ' OR 1=1;/* vào giá trị User-Id và */-- vào giá trị Password, câu lệnh truy vấn sẽ có dạng: SELECT * FROM Users WHERE User_id='' OR 1=1;/*' and password='*/--' Đây là câu lệnh có điều kiện luôn đúng, do đó kẻ tấn công có thể lấy toàn bộ dữ liệu của bảng Users. Hình 1: Sơ đồ minh họa tấn công SQLi 1. Phƣơng pháp phát hiện lỗ hổng SQLi Các toán tử để tự động phát hiện lỗ hổng SQLi chia làm 03 dạng [3, 4, 5]: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 17 - Toán tử thay đổi hành vi: or '1'='1, and '1'='1, ;DROP ALL TABLES;-- - Toán tử thay đổi cú pháp câu lệnh SQL: ', ", ) , -- , *, -, #.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ