1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(Tiểu luận) đồ án tốt nghiệp tìm hiểu một số công cụ kiểm thử bảo mật ứng dụng (web hoặc mobile hoặc các loại ứng dụng khác) và minh họa

104 5 0

Đ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

Tiêu đề Tìm hiểu một số công cụ kiểm thử bảo mật ứng dụng (Web hoặc Mobile hoặc các loại ứng dụng khác) và minh họa
Tác giả Nguyễn Thị Thúy Kiều
Người hướng dẫn TS. Ngô Thanh Hùng
Trường học Học viện Kỹ thuật Mật mã
Chuyên ngành An toàn thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2022
Thành phố Hồ Chí Minh
Định dạng
Số trang 104
Dung lượng 9,41 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ác lỗ hổng phổ biến trên ứng dụng web SQL Injection cho phép kẻ tấn công có thể thực hiện các thao tác xóa, hiệu chỉnh… do có toàn quyền trên cơ sở dữ liệu của ứng dụng, gây ra những th

Trang 1

BAN CƠ YẾU CHÍNH PHỦ

HỌC VIỆN KỸ THUẬT MẬT MÃ

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP TÌM HIỂU MỘT SỐ CÔNG CỤ KIỂM THỬ BẢO MẬT ỨNG DỤNG (WEB HOẶC MOBILE HOẶC CÁC LOẠI ỨNG DỤNG KHÁC) VÀ MINH HỌA

Ngành: An toàn thông tin

Mã số: 7.48.02.02

Sinh viên thực hiện:

Nguyễn Thị Thúy Kiều

Trang 2

Ngành: An toàn thông tin

Mã số: 7.48.02.02

Sinh viên thực hiện:

Nguyễn Thị Thúy Kiều

Trang 3

Hồ Chí Minh, 2022

Trang 4

LỜI CAM ĐOAN

Tôi xin cam đoan nội dung đề tài “Tìm hiểu một số công cụ kiểm thử bảo mật ứng dụng (web hoặc mobile hoặc các loại ứng dụng khác) và minh họa” là công trình nghiên cứu của tôi dưới sự hướng dẫn của TS Ngô Thanh Hùng Các tàiliệu được sử dụng trong luận án là hoàn toàn trung thực, có nguồn gốc rõ ràng Ngoài ra luận văn còn sử dụng một số tài liệu và dẫn chứng từ một số nguồn và đã được đề cập trong phần trích dẫn của tài liệu tham khảo Nếu phát hiện sai phạm vàgian dối trong nội dung đề tài, tôi xin chịu hoàn toàn trách nhiệm theo quy định củaHọc viện

Thành phố Hồ Chí Minh, Ngày 17 tháng 12 năm 2022

Sinh viên thực hiện

Nguyễn Thị Thúy Kiều

Trang 5

LỜI CẢM ƠN

Lời đầu tiên, em xin chân thành cảm ơn quý thầy cô giáo trong Khoa An toànThông tin của trường Học viện Kỹ thuật Mật mã đã tận tình giảng dạy, chỉ bảo, cung cấp nhiều kiến thức quý báu và tạo nhiều điều kiện thuận lợi cho em thực hiện

đồ án tốt nghiệp

Đặc biệt em xin bày tỏ lòng biết ơn chân thành đến thầy Ngô Thanh Hùng đãtận tình hướng dẫn, chỉ bảo, hỗ trợ và tạo điều kiện cho em trong suốt quá trình thực hiện đồ án Trong thời gian thực hiện đồ án em được học hỏi rất từ thầy rất nhiều, từ những kiến thức về đề tài cho đến thái độ làm việc, tinh thần học hỏi cũngnhư trách nhiệm đối với công việc của thầy

Mặc dù đã cố gắng rất nhiều để hoàn thành đồ án nhưng chắc chắn em sẽ không thể tránh khỏi những thiếu sót Em rất mong nhận được sự đóng góp ý kiến

và thông cảm từ quý thầy cô

MỤC LỤC

Trang 6

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

MỤC LỤC iii

CÁC KÝ HIỆU, CHỮ VIẾT TẮT vi

DANH MỤC HÌNH VẼ vii

DANH MỤC BẢNG ix

LỜI MỞ ĐẦU 1

CHƯƠNG 1: TÌM HIỂU CÁC LỖ HỔNG BẢO MẬT TRÊN ỨNG DỤNG WEB 3

1.1 Tổng quan về ứng dụng web 3

1.1.1 Định nghĩa 3

1.1.2 Tình trạng bảo mật các ứng dụng web hiện nay 3

1.1.3 Sự khác nhau giữa Website và Web app 4

1.1.4 Nguyên lý hoạt động của ứng dụng web 6

1.2 Các lỗ hổng phổ biến trên ứng dụng web 7

1.2.1 SQL Injection 7

1.2.2 Cross-Site Scripting (XSS) 8

1.2.3 Command Injection 9

1.2.4 Cross-Site Request Forgery (CSRF) 10

1.2.5 Server-Side Request Forgery (SSRF) 11

1.2.6 Server-Side Template Injection (SSTI) 12

1.2.7 Insecure Deserialize 13

1.2.8 Directory traversal 13

1.2.9 Insecure Direct Object References (IDOR) 14

1.2.10.Open redirect 15

Trang 7

1.2.11 HTTP request smuggling 16

1.2.12 Sensitive data exposure 16

1.2.13.Missing function level access control 17

1.2.14.Security Misconfiguration 18

1.2.15 Broken Authentication 18

CHƯƠNG 2: TÌM HIỂU CÁC CÔNG CỤ KIỂM THỬ ỨNG DỤNG WEB .20

2.1 Tìm hiểu phương pháp và quy trình kiểm thử 20

2.1.1 Phương pháp kiểm thử bảo mật 20

2.1.2 Quy trình kiểm thử bảo mật ứng dụng web 21

2.1.3 Quy trình đánh giá an toàn ứng dụng web 22

2.2 Một số công cụ phổ biến hiện nay 22

2.2.1 Công cụ Burp Suite 22

2.2.2 Acunetix 26

2.2.3 Nessus 34

2.2.4 SQLmap 38

2.2.5 Nmap 41

2.2.6 Dirsearch 46

CHƯƠNG III: SỬ DỤNG CÔNG CỤ ĐỂ KIỂM THỬ ỨNG DỤNG WEB VÀ ĐỀ XUẤT PHƯƠNG PHÁP PHÒNG THỦ 49

3.1 Sử dụng Burp Scanner để tìm lỗ hổng bảo mật 49

3.2 Sử dụng Acunetix để tìm lỗ hổng bảo mật trên ứng dụng web 61

3.3 So sánh và đánh giá kết quả 73

3.4 Khai thác lỗ hổng vừa tìm được 74

3.4.1 Khai thác lỗ hổng trên website quanlyhocvien.club 75

Trang 8

3.4.2 Khai thác lỗ hổng trên website twatch.vn 82

3.5 Đề xuất phương pháp phòng thủ 87

CHƯƠNG 4: KẾT LUẬN 91

TÀI LIỆU THAM KHẢO 92

Trang 9

CÁC KÝ HIỆU, CHỮ VIẾT TẮT

HTML HyperText Markup LanguageHTTP Hypertext Transfer Protocol

XML Extensible Markup LanguageXSS Cross-Site Scripting

Trang 10

DANH MỤC HÌNH VẼ

Hình 1 Burp Suite hiển thị địa chỉ web vừa truy cập 50

Hình 2 Chỉ định trang web cần kiểm thử tại tùy chọn Scope 51

Hình 3 Các thiết lập tại Tab Scan details 51

Hình 4 Các thiết lập tại tùy chọn Scan Configuration 52

Hình 5 Kết quả sau khi Burp Suite scan trang web quanlyhocvien.club 53

Hình 6 Danh sách các lỗ hổng được tìm thấy sau khi Burp Suite scan 54

Hình 7 Chi tiết lỗ hổng XSS (reflected) 55

Hình 8 Chi tiết lỗ hổng SQL injection 55

Hình 9 Chi tiết lỗ hổng Cleartext submission of password 56

Hình 10 Cây thư mục của trang web 56

Hình 11 Kết quả sau khi kiểm thử website twatch.vn 57

Hình 12 Danh sách các lỗ hổng website twatch.vn 58

Hình 13 Cấu trúc thư mục website twatch.vn 58

Hình 14 Chi tiết lỗ hổng SQL injection 59

Hình 15 Chi tiết lỗ hổng XSS 59

Hình 16 Chi tiết lỗ hổng Client-side desync 60

Hình 17 Chi tiết lỗ hổng Python code injection 60

Hình 18 Giao diện đăng nhập của Acunetix 62

Hình 19 Giao diện Acunetix sau khi đăng nhập thành công 62

Hình 20 Thiết lập Target cần kiểm thử 63

Hình 21 Các tùy chọn Scan 64

Hình 22 Quá trình Scan đang diễn ra 65

Hình 23 Kết quả scan Acunetix thu thập được 66

Hình 24 Các lỗ hổng đã được sắp xếp theo cấp độ 67

Hình 25 Chi tiết lỗ hổng Blind SQL Injection 68

Hình 26 Chi tiết lỗ hổng Cross site scripting 68

Trang 11

Hình 27 Chi tiết lỗ hổng Possible database backup 69

Hình 28 Chi tiết lỗ hổng HTML form without CSRF protection 69

Hình 29 Chi tiết lỗ hổng User credentials are sent in clear text 69

Hình 30 Cấu trúc thư mục của trang web được Acunetix thu thập 70

Hình 31 Thông tin các sự kiện đã diễn ra 70

Hình 32 Kết quả sau khi scan website twatch.vn 71

Hình 33 Danh sách lỗ hổng website twatch.vn 72

Hình 34 Chi tiết lỗ hổng XSS 72

Hình 35 Chi tiết lỗ hổng SQL injection 72

Hình 36 Chi tiết lỗ hổng Blind SQL Injection 73

Hình 37 Cấu trúc thư mục của website twatch.vn 73

DANH MỤC BẢNG

Trang 12

Bảng 1 So sánh sự khác nhau giữa Website và Web app 15Bảng 2 Danh sách lỗ hổng được tìm thấy 77Bảng 3 So sánh công cụ Burp Suite và Acunetix WVS 84

Trang 13

LỜI MỞ ĐẦU

Trong 6 tháng đầu năm 2022, có 6641 cuộc tấn công mạng gây sự cố vào các

hệ thống thông tin tại Việt Nam Trong số 6641 cuộc tấn công có 1696 cuộc tấncông lừa đảo (phising), 859 sự cố tấn công thay đổi giao diện (deface) và 4086cuộc tấn công cài mã độc (malware) [1]

Như đã thấy, các cuộc tấn công có xu hướng ngày càng tăng cao và có quy

mô hơn Lý do làm gia tăng nguy cơ mất an toàn là do sự xuất hiện ngày một nhiềucác trang web lừa đảo, ứng dụng lừa đảo trên mạng xã hội Đó cũng là lý do mà cácnền tảng xây dựng, phát triển ứng dụng web ngày càng phát triển, đi đôi với đó là

sự chất lượng cũng như phù hợp với mục đích sử dụng khác nhau của nhiều đốitượng người dùng

Nhận thấy tình hình này, các công cụ kiểm thử bắt đầu xuất hiện và cũngphát huy tác dụng của mình trong việc kiểm tra, phân tích và tìm ra các lỗ hổngnhằm đánh giá độ an toàn của trang web

Mục tiêu của việc nghiên cứu và xây dựng đồ án với đề tài “Tìm hiểu một sốcông cụ kiểm thử bảo mật ứng dụng (web hoặc mobile hoặc các loại ứng dụngkhác) và minh họa” nhằm mục đích tìm hiểu, sử dụng một số công cụ để kiểm thửtrang web và đưa ra kết quả đánh giá

Đề tài được chia làm bốn chương và nội dung của mỗi chương như sau:

Chương 1 – Tìm hiểu các lỗ hổng bảo mật trên ứng dụng web: Chương

này sẽ tập trung đưa ra khái niệm về ứng dụng web, đồng thời các kiến thức cơ bản

về các lỗ hổng thường gặp trên ứng dụng web

Chương 2 – Tìm hiểu các công cụ kiểm thử ứng dụng web: Chương này

sẽ thực hiện tìm hiểu một số công cụ kiểm thử về sự phổ biến, cách cài đặt và cácchức năng mà công cụ hỗ trợ

Chương 3 – Sử dụng công cụ để kiểm thử ứng dụng web và đề xuất phương pháp phòng thủ: Chương này sẽ tiến hành trình diễn kiểm thử trang web

Trang 14

bởi hai công cụ kiểm thử phổ biến nhất là Burp Suite và Acunetix, đồng thời đưa rađánh giá sau khi có kết quả và đưa ra giải pháp bảo đảm an toàn cho trang web.

Chương 4 – Kết luận: Chương này đưa ra các tổng kết về các kết quả đã

nghiên cứu được và kết luận cho đồ án

Trang 15

CHƯƠNG 1: TÌM HIỂU CÁC LỖ HỔNG BẢO MẬT TRÊN

ỨNG DỤNG WEB1.1 Tổng quan về ứng dụng web

Trong thời đại phát triển hiện nay, Internet được xem như một kênh truyền thông tiết kiệm chi phí mà bất kỳ doanh nghiệp nào cũng sử dụng Tuy nhiên, để hoạt động giao dịch diễn ra nhanh chóng và trao đổi thông tin thị trường trở nên hiệu quả, các doanh nghiệp cần phải sử dụng web application để nắm rõ và lưu trữ toàn bộ dữ liệu cần thiết và phương tiện xử lý thông tin Các doanh nghiệp sẽ chuyển từ mô hình truyền thông sang mô hình lưới và mô hình điện toán đám mây Các web application cung cấp cho doanh nghiệp khả năng hợp lý hoá nhiều hoạt động, tăng hiệu quả và giảm chi phí đáng kể

1.1.1 Định nghĩa

Website là một tập hợp các trang thông tin có chứa nội dung dạng văn bản, chữ số, âm thanh, hình ảnh, video, v.v được lưu trữ trên máy chủ (web server) và

có thể truy cập từ xa thông qua mạng Internet

Web application hay ứng dụng web là một phần mềm ứng dụng trên nền tảngweb để chạy các phần mềm theo nhu cầu và mong muốn của người dùng Thông qua các thuật toán lập trình web application, người dùng có thể thực hiện được một

số công việc như tính toán, mua sắm, chia sẻ ảnh,… vì application có tính tương tác cao

1.1.2 Tình trạng bảo mật các ứng dụng web hiện nay

Theo trích dẫn lời phát biểu của Phó Trưởng Ban Kinh tế Trung ương trong bài báo: “An ninh không gian mạng: 4.161 cuộc tấn công trong 10 tháng đầu năm 2020” của trang laodong.vn như sau: “Thực tiễn cho thấy, chúng ta đang phải đối mặt với cuộc tấn công mạng ngày càng nguy hiểm, tinh vi hơn Tại Việt Nam, theo

Trang 16

số liệu thống kê của Bộ Thông tin và Truyền thông, trong 10 tháng đầu năm 2020,

số lượng cuộc tấn công mạng gây ra sự cố đã ghi nhận 4.161 cuộc”

Theo bài báo: “Toàn cảnh an ninh mạng Việt Nam năm 2020: Tổn thất hơn 1 tỷ USD do virus máy tính” Trong năm qua, hàng loạt vụ tấn công mạng quy mô lớn diễn ra trên toàn cầu, điển hình như vụ việc nhà máy của Foxconn bị tin tặc tấn công, bị đòi 34 triệu USD tiền chuộc dữ liệu; hay 267 triệu thông tin người dùng Facebook được rao bán; Intel bị tin tặc tấn công, gây rò rỉ 20 GB dữ liệu bí mật… Mới đây nhất, T-Mobile, một trong những nhà mạng lớn nhất của Mỹ cũng đã trở thành nạn nhân tiếp theo của hacker Theo quan sát của Bkav, tại Việt Nam, nhiều trang thương mại điện tử lớn, một số nền tảng giao hàng trực tuyến có nhiều người

sử dụng, đã bị xâm nhập và đánh cắp dữ liệu

Chỉ tính riêng năm 2020, hàng trăm tỷ đồng đã bị hacker chiếm đoạt qua tấn công

an ninh mạng liên quan đến ngân hàng, trong đó chủ yếu là các vụ đánh cắp mã OTP giao dịch của người dùng Cùng với những trào lưu trên mạng xã hội tiềm ẩn hiểm họa

Một xu hướng tấn công mới của các hacker chính là tấn công chuỗi cung ứng hay còn gọi là Suppy Chain Attack Thay vì nhắm mục tiêu trực tiếp vào nạn nhân, tin tặc tấn công vào các nhà sản xuất phần mềm mà nạn nhân sử dụng, cài mã độc vào phần mềm ngay từ khi "xuất xưởng" Một khi nạn nhân tải hoặc cập nhật phần mềm phiên bản mới từ nhà sản xuất, mã độc sẽ được kích hoạt, hacker có thể dễ dàng xâm nhập thành công vào các hệ thống được bảo vệ nghiêm ngặt

1.1.3 Sự khác nhau giữa Website và Web app

Được tạo thành từ các trang html

tĩnh và một số tài nguyên (hình ảnh,

âm thanh, video)

Được tạo bởi html và code ở back end (PHP, C#, Java, …)

Trang 17

Được dùng để lưu trữ, hiển thị

thông tin

Được dùng để “thực hiện một công việc”, thực hiện các chức năng của một ứng dụng

Bảng 1 So sánh sự khác nhau giữa Website và Web app

Khả năng tương tác

Mục đích của website là giúp người dùng dễ dàng điều hướng và trích xuất thông tin liên quan đáp ứng nhu cầu của người dùng Vì vậy, website cung cấp những thông tin hữu ích với tính tương tác thấp và ít chức năng Người đọc chỉ có thể xem, nhìn và nghe và click qua lại giữa các link… chứ không thể tác động hay tạo nên sự ảnh hưởng nào của trang

Ngược lại, mục đích của web app lại là phản hồi lại tương tác của người dùng cũng như cung cấp cho họ khả năng thao tác dữ liệu Do đó, với web app bạn

có thể đọc, nghe, thao tác dữ liệu trên trang bằng cách nhấn nút, gửi biểu mẫu, nhậnphản hồi từ trang, nhắn tin trực tuyến, thanh toán,…

Khả năng tích hợp

Khi nói đến việc tích hợp với các phần mềm hoặc công cụ trực tuyến khác thì các web app thường hữu ích hơn các website Tích hợp của bên thứ ba cho phépweb app thu thập, lưu trữ và xử lý dữ liệu Chúng cũng cung cấp trải nghiệm người dùng cấp cao và tạo điều kiện thuận lợi trong việc cung cấp nội dung được cá nhân hóa

Với web app, khả năng tích hợp tương đối hiện đại hơn Hiện nay có nhiều phần mềm được tích hợp trên web app, điển hình là phần mềm CRM

Đối với website, mặc dù chúng vẫn có khả năng tích hợp các phần mềm, công cụ khác như phần mềm kế toán, phần mềm quản lý nhưng vẫn còn bị giới hạn

vì phần lớn website chỉ cung cấp đến người dùng những chức năng cốt lõi, phục vụ cho việc giới thiệu là chính

Khả năng xác thực

Trang 18

Đối với các website, thông tin xác thực là không bắt buộc Nếu website của bạn có thông tin nhạy cảm và bạn muốn hạn chế truy cập trái phép, thì xác thực người dùng sẽ đến lúc cần dùng đến Quy trình xác thực chỉ cho phép người dùng

có đăng nhập và mật khẩu thích hợp truy cập vào website và dữ liệu

Tuy nhiên, đối với các web app, đó là một tính năng bắt buộc phải có Ví dụ: bạn không nhất thiết phải đăng nhập vào Wikipedia để truy cập thông tin Tuy nhiên, bạn cần có ID và mật khẩu đăng nhập để đăng nhập và truy cập dữ liệu trên Facebook

Ngôn ngữ sử dụng khi thiết kế

So với web app, website được thiết kế khá đơn giản, chủ yếu hiển thị các nội dung văn bản, hình ảnh và hỗ trợ việc giới thiệu, nhận thông tin của người dùng từ form yêu cầu, các lập trình viên website thường sử dụng CMS WordPress bởi mã nguồn chuẩn SEO, giao diện dễ dàng sử dụng, giúp tiết kiệm chi phí và thời gian triển khai web

Ngược lại, do tính chất khác biệt, nên web app sẽ được thiết kế bằng nhiều ngôn ngữ lập trình hơn với mức độ phức tạp cao hơn Ngoài HTML, CSS ra thì một

số ngôn ngữ lập trình khác được áp dụng khi thiết kế web app: PHP, Java, NET, Ruby, Python, Javascript,…

1.1.4 Nguyên lý hoạt động của ứng dụng web

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 hoặc giao diện người dùng là lớp thứ nhất Tầng thứ hai là công nghệ kỹ thuật tạo nội dung động như Java servlets (JSP) hay Active Server Pages (ASP) Còn tầng thứ ba là cơ sở dữ liệu chứa nội dung (như tin tức) và dữ liệu người dùng (như username, password, mã số bảo mật xã hội, chi tiết thẻ tín dụng)

Quá trình hoạt động bắt đầu với yêu cầu được tạo ra từ người dùng trên trìnhduyệt, gửi qua Internet tới trình chủ Web ứng dụng (Web application Server) Web

Trang 19

ứng dụng truy cập máy chủ chứa cơ sở dữ liệu để thực hiện nhiệm vụ được yêucầu: cập nhật, truy vấn thông tin đang nằm trong cơ sở dữ liệu Sau đó ứng dụngWeb gửi thông tin lại cho người dùng qua trình duyệt.

1.2 Các lỗ hổng phổ biến trên ứng dụng web

SQL Injection cho phép kẻ tấn công có thể thực hiện các thao tác xóa, hiệu chỉnh… do có toàn quyền trên cơ sở dữ liệu của ứng dụng, gây ra những thiệt hại lớn khiến những dữ liệu trong database bị lộ ra ngoài

Sự tấn công của SQL không những cho phép những kẻ tấn công đọc được, chỉnh sửa được dữ liệu Họ có thể lợi điểm này để xóa toàn bộ dữ liệu và làm cho

hệ thống web ngừng hoạt động, tạo các bảng dữ liệu mới nó có thể điều khiển toàn

bộ hệ quản trị CSDL và với quyền hạn rộng lớn.Việc lộ thông tin gây ảnh hưởng rấtlớn đến hình ảnh, uy tín, bảo mật công ty

Để hạn chế lỗ hổng SQL Injection, chúng ta cần:

- Không tin tưởng những input người dùng nhập vào

- Sử dụng các thủ tục được lưu trữ

- Chuẩn bị sẵn các lệnh

- Thông báo lỗi đúng

- Giới hạn quyền truy cập

Trang 20

- Loại bỏ các ký tự meta và extend

- Chuyển các giá trị numberic sang integer hoặc dùng ISNUMBERIC

- Xóa các stored procedure trong database master [4]

1.2.2 Cross-Site Scripting (XSS)

XSS là viết tắt từ cụm từ tiếng Anh Cross-Site Scripting là một kiểu tấn côngbảo mật cho phép kẻ tấn công đưa các tập lệnh độc hại vào phần nội dung của các trang web đáng tin cậy khác Tấn công Cross-site scripting xảy ra khi một nguồn không đáng tin cậy được phép đưa code của chính nó vào một ứng dụng web và mãđộc đó được bao gồm trong nội dung gửi đến trình duyệt của nạn nhân Kiểu tấn công này không nhắm trực tiếp vào người dùng mà thay vào đó sẽ khai thác lỗ hổng trong trang web hoặc ứng dụng web mà nạn nhân truy cập

XSS được xem là một trong những cuộc tấn công có mức độ nguy hiểm cao với những ứng dụng web và chúng có thể mang lại hậu quả vô cùng nghiêm trọng

XSS trên thực tế gồm 3 loại tấn công phổ biến:

Non-persistent (Reflected) là loại phổ biến nhất: Loại này xuất hiện khi dữ liệu được cung cấp từ một Web client nào đó Hacker khi muốn tấn công thì điều đầu tiên là sẽ phải tìm ra lỗ hổng bảo mật trên Website bằng cách gắn một đoạn mã test vào Web client để Web client gửi đến Server và chờ phản hồi của Web Server

để tìm ra lỗ hổng bảo mật Hacker tấn công dựa vào sự thiếu chú ý về việc lọc dữ liệu vào từ URL của Website và gắn thêm những đoạn mã độc vào đây để thực hiệnhành vi tấn công Website Loại này thì chỉ có tác dụng trong một lần

Stored XSS: Là một biến thể của XSS gây hậu quả rất nặng nề Loại này xảy

ra khi dữ liệu do các hacker cung cấp được lưu trữ trên các máy chủ thông qua một

số chức năng trên Website và từ đó về sau thì các dữ liệu này hiển nhiên được hiển thị một cách bình thường trên các trình duyệt của người dùng mà không cần tới HTML riêng nữa Và khi người dùng click vào những phần bị gắn mã độc thì đã bị

Trang 21

dính XSS Đoạn mã chèn thêm vào được lưu trữ vào CSDL trên Server dưới dạng các comment trong blog, mesage, forum hay visitor log…

DOM XSS là kỹ thuật khai thác XSS dựa trên việc thay đổi cấu trúc DOM (Document object model) của tài liệu, cụ thể là HTML Mục đích chính của nó là bật ra popup để chứng tỏ script đã được thực thi

Các chiến lược giảm thiểu tấn công Cross-Site Scripting bao gồm thoát các yêu cầu HTTP không đáng tin cậy cũng như xác thực và / hoặc loại bỏ các nội dung

do người dùng thêm vào Sử dụng các web development frameworks hiện đại như ReactJS và Ruby on Rails cũng cung cấp một số tính năng bảo vệ khỏi các cuộc tấncông Cross-Site Scripting [4]

1.2.3 Command Injection

Lỗ hổng OS Command Injection là lỗ hổng truyền thống nhưng hết sức nguyhiểm khi cho phép kẻ tấn công thực thi các lệnh bất kì của hệ điều hành trên server chạy ứng dụng với đặc quyền của web server Lỗ hổng xảy ra khi một ứng dụng gọitới lệnh shell để thực thi một tác vụ với input do người dùng nhập vào nhưng khônglọc các input một cách cẩn thận

Lỗ hổng OS command injection có thể cho phép kẻ tấn công thực hiện các hành vi như:

- Thực thi lệnh hệ thống

- Làm tổn hại tới ứng dụng, server chạy ứng dụng cũng như dữ liệu trên đó

- Thực hiện SSRF

- Lấy được reverse shell

Tuỳ theo đặc quyền của web server mà lỗ hổng này có thể cho phép kẻ tấn công thực hiện được các hành vi khác nhau

Để hạn chế lỗ hổng OS Command Injection, chúng ta cần:

Trang 22

- Nếu không thực sự cần thiết, không sử dụng lệnh gọi các lệnh hệ thống trong code của ứng dụng

- Nếu không thể tránh việc sử dụng các lệnh hệ thống, hãy chắc chắn rằng việc chuẩn hoá dữ liệu được áp dụng đúng:

 Giá trị nhập vào đúng kiểu được kì vọng bởi ứng dụng (số hay string )

 Giá trị nhập vào chỉ chứa các kí tự chữ và số, không có các định dạng hay cú pháp

 Giá trị nhập vào nằm trong whitelist các giá trị được sử dụng [4]

1.2.4 Cross-Site Request Forgery (CSRF)

CSRF ( Cross Site Request Forgery) là kĩ thuật tấn công bằng cách sử dụng quyền chứng thực của người sử dụng đối với 1 website khác Các ứng dụng web hoạt động theo cơ chế nhận các câu lệnh HTTP từ người sử dụng, sau đó thực thi các câu lệnh này

Hacker sử dụng phương pháp CSRF để lừa trình duyệt của người dùng gửi đicác câu lệnh HTTP đến các ứng dụng web Trong trường hợp phiên làm việc của người dùng chưa hết hiệu lực thì các câu lệnh trên sẽ dc thực hiện với quyền chứng

thực của người sử dụng

Kết quả của một cuộc tấn công CSRF thành công là kẻ tấn công có thể thay đổi địa chỉ email của tài khoản của nạn nhân, làm thay đổi mật khẩu, hoặc thực hiện những giao dịch chuyển tiền Phụ thuộc vào bản chất của hành động đó mà kẻ tấn công có thể chiếm toàn quyền điều khiển tài khoản của nạn nhân Nếu nạn nhân có những đặc quyền tương tác với ứng dụng , kẻ tấn công có thể kiểm soát tất

cả dữ liệu cũng như chức năng của ứng dụng

Để hạn chế lỗ hổng CSRF, chúng ta cần:

- Phía user

Trang 23

 Thoát khỏi các website quan trọng như: tài khoản ngân hàng, mạng

xã hội… khi đã thực hiện xong

 Không click vào link được gửi qua email

 Không lưu mật khẩu và thông tin tài khoản trên trình duyệt

 Trong quá trình thực hiện giao dịch hay vào các website quan trọngkhông nên vào các website khác, có thể chứa các mã khai thác của

kẻ tấn công

- Phía server

 Cấu hình Web.config đơn giản giúp website an toàn

 Sử dụng cookie riêng biệt cho trang quản trị

 Kiểm tra Referrer

 Kiểm tra IP [4]

1.2.5 Server-Side Request Forgery (SSRF)

SSRF (Server Side Request Forgery) hay còn gọi là tấn công yêu cầu giả mạo từ phía máy chủ cho phép kẻ tấn công thay đổi tham số được sử dụng trên ứngdụng web để tạo hoặc kiểm soát các yêu cầu từ máy chủ dễ bị tấn công

Khi thông tin trong một ứng dụng web phải được lấy từ một tài nguyên bênngoài, chẳng hạn như nguồn cấp dữ liệu RSS từ một trang web khác, các yêu cầuphía máy chủ được sử dụng để tìm nạp tài nguyên và đưa nó vào ứng dụng web.Vậy tại sao ứng dụng lại hoạt động theo cách này và tin tưởng vào các yêu cầu đến từ máy cục bộ ? Điều này có thể phát sinh vì nhiều lý do:

- Kiểm tra kiểm soát truy cập có thể được triển khai trong một thành phần khác nằm phía trước máy chủ ứng dụng Khi một kết nối được thực hiện trở lại chính máy chỉ, việc kiểm tra sẽ được bỏ qua

- Đối với mục đích khắc phục hậu quả, ứng dụng có thể cho phép quyềntruy cập quản trị mà không cần đăng nhập, truy cập vào bất kỳ người

Trang 24

dùng nào đến từ máy cục bộ Từ đây quản trị viên có thể khắc phục hệ thống trong trường hợp họ mất thông tin đăng nhập

- Giao diện quản trị có thể đang được lắng nghe trên một cổng nào đó với ứng dụng chính và người dùng sẽ không truy cập trực tiếp được

- Tắt lược đồ URL không sử dụng

- Xác thực trên các dịch vụ nội bộ [4]

1.2.6 Server-Side Template Injection (SSTI)

Template là một thành phần thường được sử dụng trong các website và email Lỗ hổng Server-Side Template Injection là lỗ hổng mà kẻ tấn công có thể tấncông trực tiếp vào bên trong máy chủ web và thường bao gồm Remote Code Execution (RCE) - thực thi mã từ xa, biến mọi ứng dụng dễ bị tấn công thành các điểm then chốt tiềm năng (a potential pivot point) Server-Side Template Injection

có thể xảy ra khi lập trình viên cho phép dữ liệu đầu vào của người dùng được chènvào template mà không có biện pháp bảo vệ

Template Injection có thể phát sinh không những thông qua những lỗi thuộc

về phía nhà phát triển mà còn thông qua những hành vi có chủ đích của template để

cố gắng cung cấp những chức năng phong phú - thường được thực hiện bởi wikis, blogs, các ứng dụng tiếp thị và các hệ thống quản lý nội dung

Trang 25

Để hạn chế, ngăn chặn những rủi ro không đáng có, các lập trình viên nên cẩn thận trong việc cho phép dữ liệu đầu vào của người dùng được chèn vào template cũng như kiểm tra kỹ template được sử dụng trong Website của mình [4]

Lỗ hổng giải mã không an toàn xảy ra nếu quy trình không được bảo mật đúng cách Điều này cho phép kẻ tấn công thao túng các đối tượng được tuần tự hoá

để truyền dữ liệu độc hại vào mã nguồn của ứng dụng

Deserialization có thể cho phép kẻ tấn công thực hiện mã từ xa, injection, replay và tấn công leo thang đặc quyền [4]

1.2.8 Directory traversal

Directory traversal là một khai thác HTTP cho phép tin tặc truy cập đến những chỉ mục bị giới hạn, thực thi lệnh bên ngoài chỉ mục gốc của máy chủ web Máy chủ web cung cấp hai mức cơ chế bảo mật chính:

- Access Control Lists (ACLs)

- Root directory

Với một hệ thống tồn tại lỗ hổng directory traversal, tin tặc có thể lợi dụng

nó để tìm ra chỉ mục gốc và truy cập một phần của file hệ thống Điều này cho phép tin tặc xem những file bị giới hạn hay nguy hiểm hơn là tin tặc có thể thực thi những lệnh mạnh trên máy chủ, dẫn đến xâm hại hoàn toàn hệ thống Tin tặc sẽ thực thi những lệnh giả mạo thành thành viên của trang web Do đó kiểu tấn công

Trang 26

hoàn toàn phụ thuộc vào cách thiết đặt người dùng trang web được phép truy cập những gì trong hệ thống.

Để ngăn chặn tấn công Directory Traversal, chúng ta cần:

- Trước hết, đảm bảo rằng bạn cài đặt máy chủ web với phần mềm mớinhất, các bản vá sẵn đã được áp dụng

- Thứ hai, cần có bộ lọc cho bất kỳ dữ liệu đầu vào từ người dùng [4]

1.2.9 Insecure Direct Object References (IDOR)

IDOR là cụm từ viết tắt của Insecure Direct Object Reference (Tham chiếu đối tượng trực tiếp không an toàn) Lỗ hổng này nằm trong TOP 10 lỗ hổng nguy hiểm mà OWASP đã đưa ra IDOR Lỗ hổng này xảy ra khi chương trình cho phép người dùng truy cập tài nguyên (dữ liệu, file, thư mục, database ) một cách trực tiếp thông qua dữ liệu do người dùng cung cấp nhưng kém an toàn Những dữ liệu này thường là những dữ liệu quan trọng, dữ liệu nhạy cảm hoặc không quyền sở hữu của hacker, những dữ liệu public và cho phép bất kì ai truy cập không thuộc phạm vi của lỗ hổng này

Nguyên nhân sâu xa của lỗ hổng IDOR nằm ở cơ chế phân quyền và kiểm soát truy cập người dùng trên website Việc website không phân quyền đúng cũng như kiểm soát chặt chẽ việc truy cập tài nguyên của user trên hệ thống dẫn đến việctruy cập trái phép từ kẻ tấn công Việc sử dụng tham chiếu truy cập tới đối tượng là một cách làm tiện lợi nhưng nếu không phân quyền rõ ràng theo ma trận phân quyền thì việc này lại tiềm ẩn nguy cơ lộ dữ liệu rất nguy hiểm

IDOR không chỉ cho phép truy cập thông tin trái phép của người dùng khác

mà còn có thể cho phép kẻ tấn công thực hiện thay đổi hoặc xóa dữ liệu của người dùng khác Vì vậy lỗ hổng này có mức độ nguy hiểm rất cao, gây hậu quả nghiêm trọng tới người dùng Đặc biệt là các hệ thống có dữ liệu quan trọng của người dùng như: mạng xã hội, tài chính - ngân hàng, y tế

Để hạn chế lỗ hổng IDOR, chúng ta cần:

Trang 27

- Phân quyền chặt chẽ người dùng

- Hạn chế tham chiếu trực tiếp tới đối tượng

- Luôn luôn kiểm tra cẩn thận ứng dụng [4]

1.2.10 Open redirect

Open redirect là lỗ hổng khiến ứng dụng chuyển hướng người dùng tới URL được cung cấp từ nguồn không đáng tin cậy với việc không validate URL đó Nó thường được sử dụng để phising attacks – tấn công với link độc hại được gửi trong email với nỗ lực lừa người dùng truy cập site độc hại Bằng cách gửi link trỏ tới website của bạn nhưng lại chuyển hướng ngay tớ site độc, kẻ tấn công có thể phá

vỡ biện pháp chống phishing Loại tấn công này có thể ảnh hưởng tới tin tưởng củangười dùng trong site của bạn từ khi xảy ra lỗ hổng này

Kẻ tấn công có thể lợi dụng lỗ hổng Open redirect để đánh cắp thông tin và thông tin xác thực, đến việc chuyển hướng đến các trang web độc hại có chức nội dung do kẻ tấn công kiểm soát, trong một số trường hợp, thậm chí gây ra các cuộc tấn công XSS Vì vậy, mặc dù một chuyển hướng mở thoạt đầu nghe có vẻ vô hại, nhưng tác động của nó có thể rất nghiêm trọng nếu nó có thể khai thác được

Để ngăn chặn lỗ hổng Open redirect, chúng ta cần:

- Không cho phép chuyển hướng tới trang khác bằng cách kiểm tra URL

- Kiểm tra Referrer khi chuyển hướng

- Kiểm tra code ở client [4]

1.2.11 HTTP request smuggling

HTTP Request Smuggling là một kỹ thuật khai thác sự bất đồng bộ xử lý gói tin HTTP giữa máy chủ proxy/balancer/… với máy chủ web/backend Lỗ hổng này thường gây ra các ảnh hưởng rất nghiệp trọng tới logic web thông thường.Các lỗ hổng này cho phép kẻ tấn công vượt qua các kiểm soát bảo mật, truy cập trái phép vào dữ liệu cá nhân và thậm chí trực tiếp xâm phạm những người dùng ứng dụng khác Lưu lượng truy cập bất hợp pháp của các yêu cầu HTTP này

Trang 28

sẽ cho phép các cuộc tấn công khác nhau như nhiễm độc bộ nhớ cache, chiếm quyền điều khiển phiên và cũng có thể đạt được khả năng vượt qua bảo vệ tường lửa của các ứng dụng web.

Để ngăn chặn lỗ hổng HTTP request smuggling, chúng ta cần:

- Tắt sử dụng lại các kết nối back-end để mỗi yêu cầu back-end được gửi qua một kết nối mạng riêng biệt

- Sử dụng HTTP / 2 cho các kết nối back-end, vì giao thức này tránh sự

mơ hồ trong ranh giới giữa các yêu cầu

- Phần mềm máy chủ web giống hệt nhau và giống hệt nhau phải được

sử dụng cho máy chủ front-end và back-end Điều này đảm bảo rằng

họ đồng ý về ranh giới giữa các yêu cầu [4]

1.2.12 Sensitive data exposure

Lỗ hổng Sensitive Data Exposure cho phép kẻ tấn công có thể dễ dàng đánh cắp hoặc sửa đổi thông tin đăng nhập được bảo vệ yếu này và sử dụng nó cho các mục đích bất hợp pháp

Dữ liệu nhạy cảm phải được mã hóa khi ở chế độ nghỉ hoặc khi đang truyền

và có thêm một lớp bảo mật nếu không những kẻ tấn công có thể lấy cắp nó Những

kẻ tấn công có thể tiếp cận dữ liệu nhạy cảm bị lộ và lấy cắp thông tin đăng nhập

cơ sở dữ liệu và người dùng đã băm hoặc xóa văn bản đã được băm hoặc xóa khỏi máy chủ hoặc trình duyệt web Các loại lỗ hổng này có thể dẫn đến việc lộ thông tin nhạy cảm cao như thông tin xác thực thẻ tín dụng, hồ sơ sức khỏe, mật khẩu và bất kỳ dữ liệu cá nhân nào khác có thể dẫn đến hành vi trộm cắp danh tính và gian lận ngân hàng…

Để ngăn chặn lỗ hổng Sensitive data exposure, chúng ta cần:

- Phân loại dữ liệu nào được coi là dữ liệu nhạy cảm theo luật bảo mật

và áp dụng các biện pháp kiểm soát theo phân loại

Trang 29

- Cố gắng không lưu trữ bất kỳ dữ liệu phân loại nào mà bạn không cần,hãy rửa sạch ngay khi sử dụng

- Mã hóa tất cả dữ liệu khi chuyển tiếp và ở chế độ nghỉ

- Sử dụng các giao thức và thuật toán an toàn [4]

1.2.13 Missing function level access control

Lỗ hổng xuất hiện khi máy chủ thực hiện phân quyền không chính xác Những nhà phát triển thực hiện phát triển trang web dựa vào thực tế là tạo giao diệncho trang web và người dùng chỉ truy cập vào được các chức năng có trên giao diện

Tuy nhiên, các hacker luôn có thể yêu cầu các chức năng “ẩn” và không bị cản trở bởi việc giao diện không cho phép người dùng thực hiện các chức năng này.Nếu như giao diện chỉ có bảng điều khiển/admin và nút thì không có gì có thể ngăncản kẻ tấn công phát hiện các tính năng này Đồng thời lạm dụng chúng nếu không phân quyền.Để khai thác lỗ hổng website này, phía máy chủ phải luôn được phân quyền triệt để từ khâu thiết kế Không có trường hợp nào ngoại lệ bởi toàn bộ lỗ hổng sẽ xuất hiện đủ các vấn đề nghiêm trọng

Để ngăn chặn lỗ hổng này bên phía máy chủ cần phải luôn được phân quyền một cách triệt để từ khâu thiết kế Không có ngoại lệ - mọi lỗ hổng sẽ dẫn đến đủ các vấn đề nghiêm trọng [4]

Trang 30

1.2.14 Security Misconfiguration

Trong thực tế, máy chủ website và các ứng dụng đa số bị cấu hình sai Có lẽ

do một vài sai sót như:

- Chạy ứng dụng khi chế độ debug được bật

- Directory listing

- Sử dụng phần mềm lỗi thời (WordPress plugin, PhpMyAdmin cũ)

- Cài đặt các dịch vụ không cần thiết

- Không thay đổi default key hoặc mật khẩu

- Trả về lỗi xử lý thông tin cho kẻ tấn công lợi dụng để tấn công, chẳnghạn như stack traces

Để ngăn chặn lỗ hổng cần xây dựng và triển khai tự động Cần đến 1 qutrình audit các chính sách bảo mật trên máy chủ trước khi triển khai [4]

1.2.15 Broken Authentication

Đây là lỗ hổng liên quan tới vấn đề xác thực người dùng, quản lý phiên đượctriển khai chưa đúng cách, cơ chế quản lý yếu -> cho phép Hacker có thể bẻ khóa passwords, keys, session tokens hay lợi dụng để thực hiện khai thác các lỗ hổng khác nhằm chiếm được định danh của người dùng tạm thời hoặc vĩnh viễn

Kẻ tấn công dễ dàng tìm kiếm hàng trăm ngàn usernames và password phổ biến, một danh sách các tài khoản admin mặc định, các tools brute force tự động (tấn công vét cạn), hoặc các bộ công cụ tấn công từ điển Đây là điều kiện cần để thực hiện cuộc tấn công nhằm vào lỗ hổng này Với việc có quyền truy cập vào một vài tài khoản, hoặc chỉ cần 1 tài khoản admin là đủ để Hacker có thể gây nguy hại cho cả hệ thống Tuỳ thuộc vào tính chất của hệ thống, mà nó cho phép Hacker tiếnhành nhiều hành vi phạm pháp như rửa tiền, ăn cắp tài sản, danh tính, tiết lộ thông tin nhạy cảm,

Để ngăn chặn tấn công Broken Authentication, chúng ta cần:

Trang 31

- Triển khai cơ chế xác thực 2 lớp nhằm chống lại các cuộc tấn công tự động như Brute Force

- Kiểm tra độ an toàn cảu Password, không cho phép người dùng đặt những mật khẩu quá đơn giản chẳng hạn toàn số hoặc toàn chữ

- Đảm bảo việc đăng ký, khôi phục tài khoản, đăng nhập thất bại hoặc đường dẫn URL sẽ sử dụng các messages giống nhau trả về cho người dùng cho mọi kết quả

- Giới hạn số lần hoặc yêu cầu thời gian chờ sau một số lần đăng nhập không thành công

- Có cơ chế sinh, quản lý và lưu trữ Session IDs đảm bảo an toàn, với

độ khó và xáo trộn cao, set thời gian hết hạn cũng như tự huỷ sau khi Logout [4]

Trang 32

CHƯƠNG 2: TÌM HIỂU CÁC CÔNG CỤ KIỂM THỬ ỨNG

DỤNG WEB2.1 Tìm hiểu phương pháp và quy trình kiểm thử

2.1.1 Phương pháp kiểm thử bảo mật

Theo ISECOM (Open Source Security Testing) có 7 hình thức kiểm thử bảo mật:

- Rà soát các lỗ hổng tiềm ẩn – Vulnerable Scanning: thực hiện thôngqua các phần mềm để tự động scan một hệ thống nhằm phát hiện racác lỗ hổng dựa trên các signatures đã biết

- Rà soát các điểm yếu của hệ thống – Security Scanning: bao gồm việcxác định các điểm yếu của mạng và hệ thống, sau đó cung cấp các giảipháp nhằm giảm thiểu các rủi ro này Có thể thực hiện bằng thủ cônghoặc tự động

- Đánh giá bảo mật bằng cách tấn công vào hệ thống – Penetrationtesting: Đây là loại kiểm thử mô phổng cuộc tấn công từ phía mộthacker thiếu thiện ý Kiểm thử bao gồm việc phân tích một hệ thống

cụ thể, tìm ra các lỗ hổng tiềm ẩn bằng cách tấn công từ bên ngoài

- Đánh giá rủi ro – Risk Assessment: Kiểm thử này liên quan đến phântích các rủi ro bảo mật nhận thấy được Các rủi ro được phân loại làLow, Medium, High Loại kiểm thử này đưa ra các khuyến nghị nhằmgiảm thiểu các rủi ro

- Kiểm toán an ninh – Security Auditing: Kiểm tra bảo mật nội bộ ứngdụng và hệ điều hành cho lỗ hổng bảo mật Kiểm toán cũng có thểđược thực hiện thông qua cách kiểm tra mã lệnh

- Tấn công vào hệ thống tìm các điểm yếu bảo mật – Ethical hacking:Các hacker thiện ý thực hiện phương pháp tương tự như những kẻ tấncông “thiếu thiện ý”, với mục tiêu tìm kiếm các điểm yếu bảo mật và

Trang 33

xác định cách thức để thâm nhập vào mục tiêu, nhằm đánh giá mức độthiệt hại do các lổ hỗng này gây ra, từ đó đưa ra cảnh báo cùng nhữngphương án gia cố, kiện toàn bảo mật thích hợp.

- Posture assessment: Kết hợp Security Scanning, Ethical hacking vàRisk Assessment đánh giá bảo mật tổng thể một tổ chức [2]

2.1.2 Quy trình kiểm thử bảo mật ứng dụng web

- Kiểm thử các yêu cầu và thiết kế

 Kiểm thử các yêu cầu

 Trusted computational base (TCB)

 Kiểm thử quyền truy cập

 Xác định những phần cần bảo mật

 Kiểm thử vấn đề phía người dùng

- Kiểm thử mã nguồn của ứng dụng

 Kiểm thử cửa hậu (backdoor)

 Kiểm thử dữ liệu rác và tràn bộ đệ

 Kiểm thử ID và mật khẩu

 Kiểm thử thông tin rò rỉ

 Kiểm thử sử dụng GET và POST

 Kiểm thử SQL Injection

 Kiểm thử tấn công cookie

 Kiểm thử mã nguồn bên thứ 3

- Kiểm thử triển khai

Trang 34

2.1.3 Quy trình đánh giá an toàn ứng dụng web

Đánh giá an toàn ứng dụng web dựa trên tiêu chuẩn và tài liệu OSWAP Testing Guide, nội dung đánh giá bao gồm:

- Đánh giá an toàn xác thực, quản lý xác thực

- Đánh giá phân quyền an toàn

- Đánh giá an toàn trong tương tác với back-end như database, file,…

- Đánh giá kiểm soát dữ liệu đầu vào

- Đánh giá kiểm soát dữ liệu đầu ra

- Đánh giá sử dụng ngoại lệ, kiểm soát lỗi

- Đánh giá sử dụng Framework, thư viện an toàn

Để thực hiện quá trình đánh giá, kiểm thử viên cần phải:

- Sử dụng các công cụ chuyên dụng rà quét lỗ hổng, điểm yếu ứng dụngweb như: IBM AppScan, Acunetix, BurpSuite,…

- Thực hiện kiểm tra, đánh giá thủ công dựa trên kết quả rà quét lỗ hổng, điểm yếu của ứng dụng web

- Sau khi thực hiện xong, các chuyên gia kiểm thử sẽ là người đánh giá kết quả và đưa ra kết luận [3]

2.2 Một số công cụ phổ biến hiện nay

2.2.1 Công cụ Burp Suite

2.2.1.1 Giới thiệu

Burp Suite là nền tảng tích hợp dựa trên Java là một bộ công cụ quét lỗ hổng bảo mật cho ứng dụng web phổ biến được sử dụng rộng rãi nhất hiện nay Được phát triển bởi Portswigger Security Các công cụ và công nghệ khác nhau trong Burp Suite hoạt động cùng nhau và hỗ trợ toàn bộ quá trình kiểm thử bắt đầu từ những bước cơ bản ban đầu đến khai thác các lỗ hổng Người dùng có thể trải nghiệm phiên bản miễn phí với các tính năng giới hạn hoặc trả phí để sử dụng phiên bản thương mại với các tính năng tối đa

Trang 35

Chọn temporary project rồi cứ next cho đến khi vào dashboard.

Trước khi tiến hành làm việc với Burp, cần thực hiện thực hiện cấu hình để trình duyệt làm việc với nó

Bước 1: Kiểm tra option proxy của Burp

Trang 36

Bước 2: Thay đổi proxy setting của Web Browser với proxy là 127.0.0.1 và port 8080 sao cho khớp với option proxy của Burp Suite.

Trang 37

Hoặc có thể sử dụng extension “Fox Proxy” để chuyển đổi qua lại giữa giữa proxy thường và proxy của Burp.

Bước 3: Thực hiện kiểm tra xem Burp Suite đã bắt được request chưa bằng cách bật ON ở tab intercept ở proxy lên sau đó truy cập vào một trang web

2.2.1.3 Chức năng

Proxy Server

Được thiết kế để bắt các yêu cầu và tuỳ ý sửa đổi chúng trước khi gửi lên máy chủ Người dùng cần bật Burp Suite và vào tab proxy, sau đó option đánh dấu vào ô Running để sử dụng chức năng này

Decoder

Decoder là chức năng giúp giải mã (decode) và mã hóa (encode) các chuỗi theo nhiều dạng format khác nhau Để sử dụng Decoder, bạn vào tab decoder và nhập các dữ liệu cần giải mã hoặc mã hoá

Repeater

Chức năng Repeater cho phép người dùng sử dụng request được gửi đến máychủ và có thể nhanh chóng sửa đổi nội dung yêu cầu một cách tuỳ ý trong nhiều lầnkhác nhau

Trang 38

2.2.2 Acunetix

2.2.2.1 Giới thiệu

Acunetix là phần mềm quét lỗ hổng website hiệu quả nhất, kiểm tra tất cả các lỗ hổng website bao gồm cả SQL Injection, Cross Site Scripting và quét nhiều nhiều lỗ hổng website khác

Acunetix có một bộ engine phát hiện lỗ hổng website hàng đầu kèm theo là Acunetix AcuSensor thực hiện các cuộc tấn công tự động và hiển thị các lỗ hổng được tìm thấy Đây là một công nghệ bảo mật duy nhất có thể nhanh chóng tìm thấy lỗ hổng với số lượng cảnh báo giả rất thấp, cho thấy lỗ hổng trong mã và báo cáo thông tin gỡ lỗi Đồng thời xác định các lỗ hổng website như CRLF, Remote Code execution, Directory Traversal, File inclusion, lỗ hổng trong xác thực và các

lỗ hổng khác

2.2.2.2 Cài đặt

Sau khi tải file cài đặt về click vào file để tiến hành cài đặt Xuất hiện giao diện chào mừng như sau:

Trang 39

Click vào “Next” để tiếp tục Xuất hiện dòng thông báo yêu cầu đọc và kiểm tra các điều khoản sử dụng:

Lựa chọn “I accept the agreement” và click “Next”

Trang 40

Lựa chọn nơi lưu trữ chương trình Chúng ta có thể lưu trữ vào chỗ khác bằng cách click vào “Browse” và chọn nơi lưu trữ mới.

Click “Next” để tiếp tục

Ngày đăng: 29/05/2023, 09:25

TỪ KHÓA LIÊN QUAN

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