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 1BAN 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 2Ngà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 3Hồ Chí Minh, 2022
Trang 4LỜ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 5LỜ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 6LỜ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 71.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 83.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 9CÁC KÝ HIỆU, CHỮ VIẾT TẮT
HTML HyperText Markup LanguageHTTP Hypertext Transfer Protocol
XML Extensible Markup LanguageXSS Cross-Site Scripting
Trang 10DANH 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 11Hì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 12Bả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 13LỜ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 14bở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 15CHƯƠ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 16số 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 21dí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 24dù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 26hoà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 28sẽ 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 301.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 32CHƯƠ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 33xá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 342.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 35Chọ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 36Bướ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 37Hoặ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 382.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 39Click 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 40Lự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