1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu các kỹ thuật kiểm thử xâm nhập web và ứng dụng sử dụng Burp Suite

79 21 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 đề Nghiên cứu các kỹ thuật kiểm thử xâm nhập web và ứng dụng sử dụng Burp Suite
Tác giả Lờ Thị Linh
Người hướng dẫn ThS. Ninh Thị Thu Trang
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành An toàn thông tin
Thể loại Đồ án tốt nghiệp đại học
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 79
Dung lượng 24,98 MB

Nội dung

Mục đích của đồ án “Nghiên cứu các kỹ thuật kiểm thử xâm nhập web và ứng dụng sử dụng Burp Suite” là tổng hợp các nghiên cứu về việc kiểm thử xâm nhập ứng dụngweb như quy trình; các công

Trang 1

HỌC VIEN CÔNG NGHỆ BƯU CHÍNH VIỄN THONG

KHOA AN TOÀN THÔNG TIN

DE TAI NGHIEN CUU CAC KY THUAT KIEM THU XAM NHAP

WEB VA UNG DUNG SU DUNG BURP SUITE

Lé Thi Linh

Ha Nội, thang 1 năm 2024

Trang 2

HỌC VIEN CÔNG NGHỆ BƯU CHÍNH VIỄN THONG

KHOA AN TOÀN THÔNG TIN

Đề tài: “Nghiên cứu các kỹ thuật kiểm thử xâm nhập web

: Đại học chính quy

Hà Nội, thắng 1 năm 2024

Trang 3

Đồ án tốt nghiệp đại học Lời cam đoan

LỜI CAM ĐOAN

Tôi xin cam đoan rang đồ án tốt nghiệp “Nghién cứu các kỹ thuật kiểm thử xâm nhập

web và ứng dung sử dung Burp Suite” là công trình nghiên cứu của bản thân mình.

Những phần có sử dụng tài liệu tham khảo có trong đồ án đã được liệt kê và nêu rõ tạiphần tài liệu tham khảo Đồng thời những số liệu hay kết quả trình bày trong đồ án đềumang tính chất trung thực, không sao chép, đạo nhái

Nếu như sai, tôi xin chịu hoàn toàn trách nhiệm và chịu tất cả các kỷ luật của khoacũng như nhà trường đề ra

Hà Nội, thang | năm 2024

Sinh viên thực hiện

Lê Thị Linh

——-_-ỶỶỶ -n-Ỷ-=n-sT-Ỷ-s==Ỷ-==Ỷ-==ễỶ-.-sr-sễïFrỶ.-sễỶïỶïrỶ-r-ỶrỶẳỶr-.ễr.-.-.-.-.-r-.-.-c-Ỷ-Ỷ-s-Ỷ-Ỷïr-.-.-.-.-.-.-.ỶễỶễỶễỶïỶr-r

Lê Thị Linh - BI9DCATIII 1

Trang 4

Đồ án tốt nghiệp đại học Lời cảm ơn

Đặc biệt, em xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới cô ThS Ninh Thị ThuTrang đã góp ý, hướng dẫn em trong suốt quá trình thực hiện đề tài này Cô đã trực tiếphướng dẫn tận tình, sửa chữa và đóng góp nhiều ý kiến quý báu giúp em hoàn thành tốtbáo cáo đồ án của mình Một lần nữa em xin chân thành cảm ơn cô và chúc cô luôn đồidào sức khỏe.

Trong thời gian thực hiện đồ án, em đã vận dụng kiến thức nền tảng đã tích lũy đồngthời kết hợp với việc học hỏi và nghiên cứu những kiến thức mới từ thầy cô, bạn bè vàcũng như từ nhiều nguồn tham khảo Nhờ đó mà em đã có thể hoàn thành đồ án một cách

tốt nhất Tuy nhiên, vì kiến thức chuyên môn còn hạn chế và bản thân em còn nhiều thiếu

sót, em rat mong nhận được sự góp ý, chỉ bảo thêm từ quý thầy cô dé hoàn thiện nhữngkiến thức còn thiếu, dé em có thé dùng làm hành trang thực hiện tiếp các đề tài khác trong

tương lai, cũng như là trong học tập hoặc làm việc sau nay.

Một lần nữa, em xin được bày tỏ lòng biết ơn và tri ân sâu sắc đến các Thầy Cô, bạn

bè, gia đình, những người luôn hỗ trợ và sẵn sàng giúp đỡ em trong suốt thời gian qua

Trang 5

Đồ án tốt nghiệp đại học Mục lục

MỤC LỤC

LOI CAM ĐOAN 5: 222 2221122221222 2T rre i

0095001 , ili

DANH MỤC HINH VE ccccscsscsssscsesscsesucscsucscsucecsucecsvcacsucassusacsesacavavsvsvsusesecacecacavavavavevees Vv

DANH MỤC BANG BIÊU 5:-252:22222221222111221122111221112211122 1 re vii

DANH MỤC TU VIET TẮTT - 5c t2E9E12E9E12E5E12E5E121E21215E1212111111111111111112E 1e xeE viii

CHƯƠNG 1: TONG QUAN VE KIEM THU XÂM NHẬP WEEB 2 sczsxc5c: 2

1.1 _ Tổng quan về ứng dụng web - 2+ +5+++2+E9EE9EEEEEEEE2E1221217121121 2121 x 2

1.1.1 Giới thiệu ứng dụng Web ch HT ng kg ket 21.1.2 Thực trạng vấn đề bảo mật ứng dụng web - -scc se ssssnee ke, 51.2 Tổng quan về Kiểm thử xâm nhập 2 2 2+x+EE+2E£EE£EZEEEEzEeEEzErrkrrees 6

1.2.1 _ Giới thiệu kiểm thử xâm nhập -+- 2 2 2+E+£E£EE+EE£E+EeEEEzEerrrxrrrree 61.2.2 _ Giới thiệu kiểm thử xâm nhập ứng dụng web 2-5: scs+cz+zccszxez 71.2.3 Quy trình kiểm thử xâm nhập ứng dung web - 2 +c+cz+z+xzzscxez 71.2.4 Cac công cụ kiểm thử xâm nhập ứng dụng web 2s cece 10Kết chương Ì -. :-©5¿52+S<+2E9Ex9EEE212112112112117121111211211211111111111211 11011112111 re 12CHUONG 2: CÁC KỸ THUẬT KIEM THU XÂM NHẬP WEEB - ¿c2 ss+5c: 13

2.1 Phương pháp kiểm thử xâm nhập ứng dụng web - 2 2 x+c+x+zzxez 13

2.1.1 _ Giới thiệu các phương phátp, - - c5 211k vn key 13

2.1.2 So sanh 00 oi áo na ố 17

2.2 Các lỗ hồng ứng dụng web phổ biến 2: 5© £+E+2E+2EE£EE+EeEEzEerxzErrkrree 18

2.2.1 Su phát triển của các lỗ hồng ứng dụng web - + s+x+cczszxze+ 182.2.2 Giới thiệu 10 lỗ hổng bảo mật OWASP 2021 2-©5¿©5225+22+25++2 192.3 Kỹ thuật kiểm thử xâm nhập một số lỗ hồng ứng dụng phô biến 20

Trang 6

Đồ án tốt nghiệp đại học Mục lục

CHƯƠNG 3: BỘ CÔNG CU BURP SUITE 2- 2¿©2222E22EE£EEEEEEEE2EE2E2E2Ecrkrrxee 34

3.1 _ Giới thiệu về Burp Suite +55 St2E2E12E1271271 2121211211211 111 ce 34

3.2 _ Cài đặt và câu hình Burp Suite - 2 2+s+xeEE2EE2 2171212112121 tee 34

3.3 Cac tính năng quan trọng của Burp SUIt€ - - s5 Sc + vsseireseree 37

3.3.1 Dashboard S Lọ HH n HT HH TH HT ngàng nh HH kh 37

3.3.2 — Burp TarBet LQ HH HH TH nh net 38 3.3.3 Burp Proxy eeeeccceecsecesseeeesceeeeeceseeeecececeeeeaeeseeeceaecesnaeeeeesenaeeeeeesenneeeess 39 3.3.4 Burp R€peafT - TH HS kg 40

4.2 Tiến hành kiểm thử ứng dung web bán sách sử dung Burp Suite 46

4.2.1 Cai đặt môi trường thử nghiỆm - - +5 2+ + *EEsvserrrrsrrsrerrsre 46

4.2.2 Pha lap kế hOaCh i eeceeccsceseceseescsesececsvecececsvsvsucecsvevsusacsesvereacessvssesevevaceeeees 47

HN 4Ả 50 4.24, Pha DAO CAO i:i^.- 63

Kết chương 4.0 cecccccscccssessessessessussssssessessessessussusssessessessessessussusssessessessessssssesssesiseeeeees 66

4000700057 67TÀI LIEU THAM KHẢO ::2222222222222112711122711122112112 1 re 68

——-_-ỶỶỶ -n-Ỷ-=n-sT-Ỷ-s==Ỷ-==Ỷ-==ễỶ-.-sr-sễïFrỶ.-sễỶïỶïrỶ-r-ỶrỶẳỶr-.ễr.-.-.-.-.-r-.-.-c-Ỷ-Ỷ-s-Ỷ-Ỷïr-.-.-.-.-.-.-.ỶễỶễỶễỶïỶr-r

Lê Thị Linh - B19DCAT111 1V

Trang 7

Đồ án tốt nghiệp đại học Danh mục

DANH MỤC HÌNH VE

Hình 1.1: Kiến trúc của hệ thống ứng dụng web - 2-2 + +x+£E£2E+2E2EE2E12EEeEEerrrrees 4Hình 1.2: Biéu đồ các lớp của kiến trúc ứng dung web -¿- + + x+2E2E2Exzrxerxerxees 5Hình 2.1: 10 mối đe dọa bảo mật hàng đầu của ứng dụng web ¿2= s+s+ccz+ 14Hình 2.2: Cách thức tấn công SQL injection -¿- 2 ¿+s+SE+E2+E+E£E£EE£E£EEEEEEzErrxrrrrrrx 21Hình 2.3: Mô ta đường dẫn tuyệt đối và đường dẫn tương đối trong hệ điều hành 30

Hình 3.1: Khởi động Burp Suite trong KaÌI c3 131133 SE EEESseeresreereereers 35 Hình 3.2: Màn hình khởi động Burp SuIfe -. c2 2c 2221123112111 erek 36

Hình 3.3: Cau hình Burp Suite 2-5 sSs+SE+EE2E£EEEEEEEE2E2EE712712112171111121111 1T xe 36Hình 3.4: Giao diện chính của Burp SUIf€ - - c2 3 1231219 111911111 111111111 kiệt 37Hình 3.5: Giao diện bảng điều khiển của Burp Suite -©5252222+EcctzEcrxerrrerxred 38

Hình 3.6: Giao diện Site map của Burp TarB€( c1 1221119 11 nen 38 Hình 3.7: Giao diện của Burp PTOXV c2 11v HH ng TH HH ket 39 Hình 3.8: Tính nang Intercept của Burp PTOXV - c1 St S9 ket 40 Hình 3.9: Tab HTTP history của Burp PTOXV c1 1S v19 ng re 40

Hình 3.10: Giao diện công cụ Burp R€pAf€T - - S2 1132111125111 1H 11 ng re 4IHình 3.11: Dinh vị trí chèn payload tan công trong Burp Intruder 2-5-5555 s¿ 42Hình 4.1: Giao diện chức năng đăng nhập, đăng ký - 5c c SSssksskrsserssrke 44Hình 4.2: Giao diện chính hién thị sản phẩm của ứng dụng 2- 2 22 s2 >x+zz+xd 45

Hình 4.3: Giao diện g1ỏ hàng - c1 0112111211191 1 9111911 0111111 HH HH 45

Hình 4.4: Giao điện phần bình luận sản phẩm - 2-2 + 5+2 +E+E£+E£EzEeEEzErxerered 46Hình 4.5: Giao diện xem thông tin người dùng - - - c 3+ + EEseeEeeereerrseeres 46Hình 4.6: URL có phan mở rộng tiết lộ ngôn ngữ lập trình 2-5 22 z+s+szx+c+2 47Hình 4.7: Nhập link của ứng dụng web cần quét lỗ hỗng 22 52 +2+£+£z£zEz£+ 50Hình 4.8: Cau hình quét lỗ hồng tự động -2- ++S2+S++E£EE£EE£EE+EEEEEEEEEEEEErErrrrreg 51Hình 4.9: Kết quả của quét tự động ứng dụng web bán sach c.ceceececcsceseseeseseseeeseseeeees 51Hình 4.10: Các van đề của ứng dụng được tìm thay sau khi quét tự động 52Hình 4.11: Gợi ý về vị tri phát hiện lỗ hồng SQL injection - 2-5-5 252+s+£+£szzz£+ 53Hình 4.12: Lỗi khi thử số cột là 3 - 2-2 ©s 2S 2E22E22E1221221271E21212712171211 211.1 re 53Hình 4.13: Tìm được số cột của truy vấn là 4 sec E1 EE1111111711111111111 11111 rree 53Hình 4.14: Tìm được phiên ban của CSDLL - 5 2c 2+1 E +3 +3 SE ng 54 Hình 4.15: Tìm được tên CSDL là “website” ieee 2011111111111 11 111kg 54

——-_-ỶỶỶ -n-Ỷ-=n-sT-Ỷ-s==Ỷ-==Ỷ-==ễỶ-.-sr-sễïFrỶ.-sễỶïỶïrỶ-r-ỶrỶẳỶr-.ễr.-.-.-.-.-r-.-.-c-Ỷ-Ỷ-s-Ỷ-Ỷïr-.-.-.-.-.-.-.ỶễỶễỶễỶïỶr-r

Lê Thị Linh - B19DCAT111 V

Trang 8

Đồ án tốt nghiệp đại học Danh mục

Hình 4.16: Kết quả tìm được danh sách các bảng có trong CSDL website - 55Hình 4.17: Kết quả tìm được tên các cột trong bảng ““accOuniS” 2 s+cx+cszxecxd 56

Hình 4.18: Tìm được danh sách các USERNAME và PASSWORD cc.+ 57

Hình 4.19: Nội dung file expoIf.pH - - - - c2 2 121112111211 21 119v ng kg kg key 58Hình 4.20: Trang web chỉ chấp nhận file hình ảnh -2- ¿2 S2 2+E+£+££zEzE££zzzxcz+ 58Hình 4.21: Sửa tên file và chèn payload vào trong requ€Sf - + ss+svsssses 59

Hình 4.22: Tải file khai thác lên thành công - 5c 32+ 3321132 EE2EEESEEEEerreeresseers 59 Hình 4.23: Mở file khai thác trên ứng dụng web - - c t1 v11 vn ren 60

Hình 4.24: Thông báo lỗi khi nhập số sản phẩm âm 2-2-5252 £E+E££E+£zEezszed 60Hình 4.25: Quan sát request chứa tham số số lượng - 2-2 5+ +s+22+E+£++E+zxzxezxssez 61Hình 4.26: Chỉnh sửa số lượng sản pham trong request và quan sát response 61Hình 4.27: Thêm sản phẩm với số lượng âm thành công - 22 22 2+x+z++E+£zze+ 62Hình 4.28: Thông báo lỗi khi thanh toán số tiền âm - 2 5252 +£+££+E+E+£zzzEzzz 62Hình 4.29: Thêm sản phẩm khác vào giỏ hàng - 2-2 2 22s +E£EE+E£E£EEzE+EvEzErrrrees 62

Hình 4.30: Dat hang thành công - c2 222112111231 1211 1911111111111 111811 1H vn re 63

Hình 4.31: Câu truy vấn gỐc + ¿52s 2EEE1211211212112212112111111211211111 21111126 64Hình 4.32: Dé xuất biện pháp khắc phục - +: 2 22 2+ +E£EE+EE+E£EEEE+EEEEEErErrerxrxrrrrx 64Hình 4.33: Mã nguôồn ban đầu 2-2 s+S2+E2ESEE2E12E12E121571211211211121121111 21111 cre 65

Hình 4.34: Dé xuất khắc Phuc ccccccccsscsssessessessessesssssessessessessssssssssessessessessessssessesesaess 65

Hình 4.35: Doan mã thêm sản phẩm - 2-2 2© 2E2E£2EE£EE£EE£EEEEEEEEEEEEEEEEEErrkerrred 66

Hình 4.36: Biện pháp khắc phục ¿- +: 5£2S22E£+EE2EE£EEEEEEEEE2E21121122171 211211 ce, 66

——-_-ỶỶỶ -n-Ỷ-=n-sT-Ỷ-s==Ỷ-==Ỷ-==ễỶ-.-sr-sễïFrỶ.-sễỶïỶïrỶ-r-ỶrỶẳỶr-.ễr.-.-.-.-.-r-.-.-c-Ỷ-Ỷ-s-Ỷ-Ỷïr-.-.-.-.-.-.-.ỶễỶễỶễỶïỶr-r

Lê Thị Linh - B19DCAT111 vi

Trang 9

Đồ án tốt nghiệp đại học Danh mục

DANH MỤC BANG BIEU

Bang 1.1: Bảng đánh giá các công cụ kiểm thử xâm nhập - 2-2 ¿+5 2+£+£zzzxzz+ IIBảng 2.1: Bảng so sánh các phương pháp nỗi tiếng trong kiểm thử xâm nhập 18Bảng 2.2: Các biến cần xem xét khi phân tích mã nguồn của các ngôn ngữ 28Bang 2.3: Dấu phân cách thư mục trong các hệ điều hành - - 2 2 2+s2+x+£zzzzz+ 31

——-_-ỶỶỶ -n-Ỷ-=n-sT-Ỷ-s==Ỷ-==Ỷ-==ễỶ-.-sr-sễïFrỶ.-sễỶïỶïrỶ-r-ỶrỶẳỶr-.ễr.-.-.-.-.-r-.-.-c-Ỷ-Ỷ-s-Ỷ-Ỷïr-.-.-.-.-.-.-.ỶễỶễỶễỶïỶr-r

Lê Thị Linh - B19DCAT111 vii

Trang 10

Đồ án tốt nghiệp đại học Danh mục

DANH MỤC TỪ VIẾT TẮT

TỪ VIẾT TẮT TIENG ANH TIENG VIET

API Application Programming Giao diện lập trình ứng dụng

Interface

CSDL Database Cơ sở dữ liệu

CSRF Cross-Site Request Forgery Tan công gia yêu cầu mạo chéo

trang

CVE Common Vulnerabilities and Các loại rủi ro phố biến

Exposures

HTTP Hyper Text Transfer Protocol Giao thức truyền siêu văn bản

OSSTMM Open Source Security Testing Số tay phương pháp kiểm thử

Methodology Manual bao mật mã nguồn mở

OTG OWASP Testing Guide Hướng dẫn kiểm thử OWASP

OWASP Open Web Application Security Dự án bảo mat ứng dung web

Project mo

PTES Penetration Testing Execution Chuẩn thực hiện kiểm thử xâm

Standard nhậpSQL Structured Query Language Ngôn ngữ truy vấn cấu trúc

SSRF Server-Side Request Forgery Tan công giả mao yêu cầu phía

máy chủURI Uniform Resource Indentifier | Dinh danh tai nguyén thống nhất

URL Uniform Resource Locator Địa chi tài nguyên thống nhất XSS Cross-Site Scripting Tan công kịch bản chéo trang

Trang 11

Đồ án tốt nghiệp đại học Mở đầu

MỞ ĐẦU

Theo Liên minh Viễn thông Quốc tế (ITU), số lượng người sử dụng internet năm

2023 chạm mốc 5,4 tỷ người, tương đương 67% dân số thế giới, con số này hiện nay là

cao nhất và đang tăng lên nhanh chóng do những tiến bộ của công nghệ Song song voi SỰ phat trién nhanh chong cua internet, cac trang web trở thành công cụ truyền thông ngày

càng hiệu quả Tuy nhiên, các ứng dụng web rat dé bị tan công và có thể cung cấp cho kẻ

tan công quyền truy cập trái phép vào các thông tin nhạy cảm Số lượng lỗ hồng trong cácứng dụng web đã tăng lên đáng kể trong thập kỷ qua Theo thống kê của đơn vị nghiêncứu mối đe dọa Qualys, tính đến cuối năm 2023, đã có 26.477 lỗ hồng được tiết lộ (nhiềuhon năm 2022 là 1500 CVE) Đáng ké là khoảng 32,5% trong số 206 lỗ hồng rủi ro cao(High-Risk) được xác định nằm trong cơ sở hạ tầng mạng và các ứng dụng web — các lĩnh

vực thường khó bảo vệ bằng các cách thông thường [1].

Nhiều nguyên nhân dẫn đến các lỗ hồng là do việc xác nhận và kiểm tra đầu vàokhông đúng cách Việc xác định các lỗ hồng này là điều cần thiết để phát triển các ứng

dụng web an toàn, chất lượng cao Bất kế một trang web nảo trước khi được phát hành ra

công chúng đều cần được kiểm thử xâm nhập theo một tiêu chuẩn nhất định dé đảm bảotính bảo mật của thông tin.

Mục đích của đồ án “Nghiên cứu các kỹ thuật kiểm thử xâm nhập web và ứng dụng

sử dụng Burp Suite” là tổng hợp các nghiên cứu về việc kiểm thử xâm nhập ứng dụngweb như quy trình; các công cụ; các phương pháp, các tiêu chuẩn và cách thực hiện loạikiểm thử này Đồ án này cũng tìm hiểu các mối nguy hiểm va lỗ hồng phổ biến liên quan

đến ứng dụng web cũng như đề xuất các biện pháp bảo vệ dé tránh khỏi các lỗ hồng nay Ngoài ra, còn cung cấp đánh giá và so sánh toàn điện về các công cụ kiểm thử xâm nhập

web phổ biến dé giúp người kiểm thử có thé lựa chọn được công cụ kiểm thử phù hợp cho

dự án kiểm thử của mình.

Nội dung của dé án bao gồm 4 chương như sau:

Chương | sẽ trình bày tông quan về van đề kiểm thử xâm nhập.

Chương 2 nêu các phương pháp, kỹ thuật kiêm thử xâm nhập website

Chương 3 giới thiệu về bộ công cụ kiểm thử xâm nhập Burp Suite.

Chương 4 trình bày nội dung về việc thực nghiệm ứng dụng Burp Suite trong việckiểm thử xâm nhập website

Lê Thị Linh - BI9DCATIII 1

Trang 12

Đồ án tốt nghiệp đại học Chương 1

CHUONG 1: TONG QUAN VE KIEM THU XÂM NHAP WEB

Chương 1 giới thiệu khdi quát về các thành phan, kiến trúc ứng dung web, nêu thực trạng của van dé bảo mật ứng dụng web Phan tiếp theo của chương 1 trình bày về các vấn dé kiểm thử xâm nhập web như quy trình kiểm thử, giới thiệu và so sánh một số công

cụ kiểm thử xâm nhập ứng dung web, đưa ra li do nên sử dụng bộ công cụ kiểm thử Burp

Suite.

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

1.1.1 Giới thiệu ứng dụng web

Ứng dụng web là một phần mềm ứng dụng không cần phải cài đặt mà thay vào đó cóthê truy cập từ máy chủ từ xa thông qua trình duyệt web Các ứng dụng web được tạo ra

đê tương tác, cho phép người dùng gửi và sử dụng dữ liệu giữa trình duyệt và máy chủ web.

Các ứng dụng web có thê bao gồm các trang web tĩnh hoặc là các trang web động và

có tính tương tác Trang web tĩnh được lưu trữ trong hệ thống tập tin của máy chủ web vàthường hién thị thông tin giống nhau cho tat cả người dùng truy cập Trong khi đó, trang

web động được xây dựng nhằm cung cấp thông tin cá nhân cho người dùng và cho phép

họ cá nhân hóa nội dung theo sở thích của họ.

Ung dụng web sử dụng giao thức HTTP (Hyper-Text Transfer Protocol) dé truyền tải

dữ liệu giữa máy chủ và trình duyệt người dùng Giao thức này hoạt động theo kiểurequest — response (yêu cầu — đáp ứng) trong mô hình khách — chủ (client — server) Giao

thức HTTP có 3 đặc điểm cơ bản: Không kết nối (Connectionless); Độc lập với thông tin

truyền (Media independent) và Không có trạng thái (Stateless) Ngoài HTTP thì HTTPS(Secure HTTP) còn được ứng dụng web sử dụng để đảm bảo an toàn cho thông tin đượctruyền tải

1.111 Các thành phan của ứng dụng web

Về cơ bản, một ứng dụng web có 3 thành phần chính: Trình duyệt web (còn gọi là

máy khách), may chu web va máy chu Cơ sở dir liệu (CSDL).

Trình duyệt web

Trình duyệt web (web browser) là phần mềm cho phép người dùng truy cập và hiển

thị các trang web trên Internet Nhiệm vụ chính của trình duyệt là tạo một yêu cầu

(request), gửi yêu cầu đó và sau đó tải xuống và hién thị nội dung của phản hồi (response)

từ máy chủ web Những nội dung này bao gồm văn bản, hình ảnh, video, âm thanh

Trình duyệt cũng cung cấp giao diện người dùng dé người dùng tương tác với trang web

như nhập địa chỉ URL, thực hiện tìm kiếm và tương tác với các thành phần trang như cácbiéu mẫu (form) hay nút bam (button)

Lê Thi Linh - BI9DCATIII 2

Trang 13

Đồ án tốt nghiệp đại học Chương 1

Mỗi trình duyệt web đều có đặc điểm riêng, cùng với các tính năng và hiệu suất khác

nhau Một số trình duyệt phổ biến hiện nay bao gồm: Google Chrome, Mozilla Firefox,

Microsoft Edge, Safari và Opera.

Máy chủ web

Máy chủ web (web server) là phần mềm xử lý các yêu cầu HTTP gửi đến và cung cấpphản hồi thích hợp Nó chịu trách nhiệm xử lý các yêu cầu từ trình duyệt người dùng vàgửi phản hồi là các tệp tĩnh cho hién thị trực tiếp trên trình duyệt, các tệp tĩnh này thường

là HTML, CSS, JavaScript và hình ảnh Máy chủ web cũng xử lý nhiều loại yêu cầu khác như gửi biểu mẫu, tải tệp và gọi các API.

May chủ web thường sử dụng các ngôn ngữ như Apache va PHP, Nginx với Node.js

hoặc Microsoft IIS với ASP.NET Hiện nay, có nhiều máy chủ web phổ biến bao gồmApache và Nginx là máy chủ nguồn mở được sử dụng rộng rãi nhất Cả hai đều có khảnăng xử lý một lượng lớn yêu cầu đồng thời

Máy chủ CSDL

Máy chủ CSDL (Database) là máy chủ chịu trách nhiệm quản lý và cung cấp quyền

truy cập đến CSDL Nó là nơi lưu trữ và quản ly dữ liệu cho ứng dụng và các hệ thốngthông tin khác Có nhiều loại CSDL, mỗi loại có ưu và nhược điểm riêng Nổi bat nhất là

CSDL quan hệ và phi quan hệ.

CSDL quan hệ (vi dụ: MySQL, PosgreSQL hoặc Oracle) sẽ dựa trên khung quan hệ

va sử dụng các bảng, hang và cột dé lưu trữ thông tin Dữ liệu được tô chức thành các

bảng, mỗi bảng có một lược đồ hoặc cấu trúc riêng biệt được xác định bởi các cột và kiểu

dữ liệu Các bảng được liên kết với nhau thông qua các khóa cho phép đọc và chia sẻ dữliệu trên nhiều bảng

CSDL phi quan hệ (ví dụ: MongoDB, Cassandra) được xây dựng trên mô hình tải liệu

(document), nghĩa là nó sẽ sử dung document dé lưu trữ thông tin Mỗi tài liệu là một tậphợp các cặp key-value giống đối tượng JSON

Nhìn chung, CSDL phi quan hệ linh hoạt và dễ đáp ứng hơn CSDL quan hệ, nhưng bị

hạn chế đối với các mối quan hệ dữ liệu phức tạp hơn.

Máy chủ ứng dụngMáy chủ ứng dụng (application server) là phần phụ trợ (back-end) của kiến trúc hệthống ứng dụng web Nó là một loại máy chủ thiết kế để chứa, quản lý và thực thi logicứng dụng và xử lý động như tương tác với CSDL, xử lý yêu cầu phức tạp từ người dùng

Cu thé, may chu web sẽ thực hiện các nhiệm vu như:

- Xu ly logic ứng dung: Máy chủ ứng dung chứa mã logic của ứng dụng web Nó xử

lý các yêu cầu phía người dùng, thực hiện tính toán và đưa ra quyết định dựa trên

logic do người lập trình viên định nghĩa.

Lê Thị Linh - B19DCAT111 3

Trang 14

Đồ án tốt nghiệp đại học Chương 1

- _ Kết nói đến CSDL: Nếu cần, máy chủ web sẽ tương tác với CSDL dé lấy hoặc cập

nhật thông tin.

- Quan ly Phiên (Session) và trạng thái: Phiên là một kỹ thuật cho phép tạo ra ứng

dụng web có trạng thái, máy chủ web tạo ra và lưu một chuỗi định danh (ID) chomỗi phiên theo yêu cầu phía máy khách Nếu ứng dụng yêu cầu theo dõi trạng thái

của người dùng (ví dụ: thông tin đăng nhập), máy chủ ứng dụng web sẽ quản lý

phiên làm việc và trạng thái của người dùng qua các yêu cầu và phản hồi

May chủ ứng dung thường được phát triển bằng các ngôn ngữ lập trình phía máy chủ

như Java, Python, Ruby, PHP hoặc Node.Js Về bản chất, máy chủ ứng dụng hoạt động

theo cách kết nối giao diện người dùng với CSDL Nó nhận được yêu cầu thông qua trình

duyệt, sau đó xử lý yêu cầu đó rồi chuyên tiếp đến hệ thống CSDL đề được xử lý thêm rồi

truyền phản hồi thích hợp cho người yêu cầu

1112 Kiến trúc ứng dụng web

Kiến trúc ứng dụng web là sự tương tác giữa thành phần phần mềm như: CSDL, ứngdụng và phần mềm trung gian (midware) Nó xác định cách đữ liệu được phân phối quaHTTP và dam bảo răng phía máy khách và phía máy chủ backend đều có thê hiểu được

Hơn nữa, nó cũng đảm bảo dữ liệu hợp lệ trong tất cả các yêu cầu từ phía người dùng Nó

tạo và quản lý các bản ghi đồng thời cung cấp quyền truy cập và xác thực dựa trên quyền

Những ứng dụng web khác nhau về chức năng và độ phức tạp thì sẽ có kiến trúc ứng dụng web khác nhau và thành phần khác nhau Việc chọn được thiết kế phù hợp cho hệ

thống ứng dụng web sẽ xác định được sự phát triển, độ tin cậy và khả năng tương tác

cũng như nhu cầu sử dụng trong tương lai Vì vậy, cần phải hiểu các thành phần cấu tạo

nên kiến trúc ứng dụng web Như đã trình bày ở trên, kiến trúc ứng dụng web sẽ gồm 3phần chính là Trình duyệt web (Web Browser), Máy chủ web (Web Server) và Máy chủ

CSDL (Database Server) Ngoài ra, còn có các thành phần phụ như Máy chủ ứng dụng

(Application Server) và Hệ thống file (File System) như mô tả trong hình 1.1 đưới đây

|_—Request—>‡

i Response —]

(HTML, css,

Web Browser JavaScript) Web Server —

| = i7

—-` / —-` ⁄ File System Database

Hình 1.1: Kiến trúc của hệ thong ứng dụng web

Lê Thị Linh - B19DCAT111 4

Trang 15

Đồ án tốt nghiệp đại học Chương 1

Khi Web Browser gửi một yêu cầu đến Web Server thì nếu đó là yêu cầu trang web

tĩnh, Web Server sẽ trả về phản hồi là các file tĩnh Nếu đó là yêu cầu một trang web độngthì Web Server chuyền yêu cầu cho Application Server xử ly Application Server sẽ thực

hiện các mã script có trong trang web dé tạo kết quả va nó có thé truy nhập đến Database

hoặc File System nếu cần dé xử lý yêu cầu Kết quả sau đó được trả về cho Web Servertrả về phản hồi cho Web Browser

Kiến trúc ứng dụng web hiện nay thường được chia thành 3 lớp chính là: Lớp trình

diễn (Presentation layer), Lớp logic nghiệp vụ (Business Layer) và Lớp dữ liệu (Data

Layer) được mô tả trong hình 1.2.

⁄% Business Layer ^N

Presentation Layer

API Layer App Back End

Web : <> Legacy ApplicationBusiness

Hình 1.2: Biểu đồ các lớp của kiến trúc ứng dụng web

1.1.2 Thực trang van đề bảo mật ứng dụng web

Theo thống kê của Astra (công ty thuộc chương trình Techstars), trung bình cókhoảng 30.000 trang web bị tan công mỗi ngày trên toàn cầu, trong đó 43% nhằm vào các

doanh nghiệp nhỏ Các cuộc tấn công chèn mã SQL đã tồn tại hơn hai thập kỷ và vẫn là

phương pháp phổ biến để tin tặc đánh cắp đữ liệu Năm 2022, số vụ tấn công chèn mã

SQL được OWASP (Du án bao mật ứng dung web mở) báo cáo là 274.000 vu Chỉ chưa

mất 10 giây để tin tặc có thê thực hiện một tấn công chèn mã SQL vào một trang web dé

bị tấn công [2]

Theo báo cáo “Thực trạng bảo mật ứng dụng web 2023” của OPSWAT (Công ty

hàng đầu thế giới về các giải pháp an ninh mạng dành cho doanh nghiệp) cho biết trongkhi công nghệ liên tục phát triển thì tốc độ nâng cấp bảo mật lại gặp khó khăn đề theo kịp

Khoảng cách này đặc biệt rõ ràng trong lĩnh vực bảo mật ứng dụng web do các doanh

nghiệp dang tăng độ phức tạp của các ứng dụng web bang cách sử dụng các ứng dụng

phân tán có thể mở rộng, tan dụng các dịch vụ vi mô (Microservices) và giải pháp dam

mây [3] Cũng theo báo cáo, mối lo ngại hàng đầu hiện nay của hầu hết các tô chức là van

Lê Thị Linh - B19DCAT111 5

Trang 16

Đồ án tốt nghiệp đại học Chương 1

dé vi phạm dữ liệu do tải tệp lên (File Upload) không an toàn Băng cách rà soát các ứngdụng web có chức năng cho phép tải tệp lên hệ thống, OPSWAT đã tìm ra rất nhiều ứngdụng web của tô chức đang đứng trước nguy cơ bị tấn công qua tệp tin có chứa mã độc

Hậu quả của việc cho phép tải tệp tin không an toàn có thé dẫn đến thiệt hại về danh tiếng

cũng như tổn thất về kinh doanh và doanh thu Không chi lỗ hồng file upload, một ứngdung web còn đứng trước hàng trăm lỗ hỗng bảo mật khác nhau mà tô chức cần chú ýtrong quá trình thiết kế và phát triển ứng dụng web Việc quan trọng là chúng ta cần pháthiện và ngăn chặn các cuộc tan công trước khi chúng xâm nhập vào mạng và bắt đầu gâyhại.

Với hiện trạng trên, các tổ chức và doanh nghiệp cần tăng cường xây dựng hệ thốngbao mật thông tin cho ứng dụng web nhằm đối mặt với các mã độc zero-day, lỗ hồng bao

mật và các cuộc tấn công ngày càng tinh vi của tin tặc Dé làm được điều này, tổ chức và

doanh nghiệp được khuyến khích thực hiện việc kiểm thử xâm nhập (pentest) toàn bộ ứng

dụng web trước khi đưa vào hoạt động chính thức.

Báo cáo chi phí vi phạm dit liệu năm 2023 của IBM Security đã nghiên cứu 553 tổchức trên phạm vi 16 quốc gia khác nhau bị ảnh hưởng bởi các vụ vi phạm dữ liệu xảy ra

từ tháng 3 năm 2022 đến tháng 3 năm 2023, chi phí trung bình cho một vụ vi phạm dữ đãtăng lên một tầm cao mới là 4,45 triệu USD (tăng 100.000 USD so với năm 2022) [4] cao

hơn rất nhiều so với chi phí thuê tổ chức kiểm thử xâm nhập thường xuyên Việc kiểm thử

xâm nhập không chỉ giúp thu hẹp các lỗ hổng bao mật mà còn phát hiện và ngăn chặn kịpthời các lỗ hồng gây tôn hại đến danh tiếng, uy tín và tiền bạc của tô chức

1.2 Tong quan về Kiểm thử xâm nhập

1.2.1 Giới thiệu kiểm thử xâm nhập

Kiểm thử xâm nhập (penetration testing hay pentest) là quá trình xác định các lỗ hổngbảo mật trong một hệ thống bằng cách đánh giá khả năng bị tắn công của hệ thống thông

qua việc sử dụng các kỹ thuật khai thác để xác định các mối đe dọa thực tế và nguy cơ

gây hại cho hệ thống [5] Hiểu một cách đơn giản, trong quá trình kiểm thử, người kiểmthử xâm nhập sẽ dùng các công cụ, kỹ thuật và quy trình giống như kẻ tấn công để tìm vàchứng minh các điểm yếu tồn tại trong hệ thống, từ đó đưa ra đánh giá tính bảo mật của

hệ thống đó

Mục tiêu của các cuộc kiểm thử xâm nhập không chỉ đưa danh sách các lỗ hồng trong

hệ thống mà còn dé cho tổ chức thấy được cách kẻ tan công có thé sử dụng các lỗ hồng đónhư thế nảo Trong kiểm thử xâm nhập bao gồm 3 hạng mục:

- _ Đánh giá cơ sở hạ tang mang

- _ Đánh giá hệ thống máy chủ

- - Đánh giá ứng dụng web

Việc tiép cận một cách toàn diện đôi với kiêm thử xâm nhập là điêu cân thiết trong

Lê Thị Linh - B19DCAT111 6

Trang 17

Đồ án tốt nghiệp đại học Chương 1

quản trị rủi ro Điều này đòi hỏi phải kiểm thử tất cả các khía cạnh trong hệ thống Tương

ứng với các khía cạnh của hệ thống, có các loại kiểm thử như: Kiểm thử ứng dụng web,

ứng dụng di động, hạ tầng mạng, hạ tầng đám mây, các thiết bị nhúng (IoT), các thiết bị

di động, các API, Trong đó, phổ biến nhất hiện nay là kiểm thử ứng dụng web

1.2.2 Giới thiệu kiểm thử xâm nhập ứng dụng web

Kiểm thử xâm nhập ứng dụng web là một khía cạnh của việc kiểm thử xâm nhập Nó

là quá trình mô phỏng lại các cuộc tấn công trái phép trong đời thực nhằm vào các ứng

dụng web, trang web hoặc dịch vụ web để xác định các mối đe doa (threats) có thé xay ra.

Kiểm thử xâm nhập là một kỹ thuật nhằm nâng quyền truy cập vào hệ thống bảo mật,

sử dụng đề phân tích các lỗ hồng của ứng dụng web Để tiến hành loại thử nghiệm này

một cách hợp pháp, cần phải xin phép chủ sở hữu của ứng dụng

Mục tiêu của các cuộc tan công ứng dụng web là cô gang nâng quyền trong ứng dụng

hoặc chuyên từ ứng dụng này sang ứng dụng khác hoặc mục tiêu khác Mỗi lần khai thácthành công trong quá trình thực hiện kiểm thử có thể cấp quyền truy cập vào chức nănghoặc thành phần mới trong ứng dụng Việc liệt kê các chức năng mới rất quan trọng, giúp

người kiểm thử có thé tìm ra mọi cách dé tấn công hoặc làm tốn hại đến hệ thống Qua

các cuộc tấn công đó sẽ giúp người dùng cuối tìm ra khả năng một tin tặc (hacker) có thé

truy cập vào đữ liệu từ internet Từ đó đưa ra giải pháp an toàn cho máy chủ và cũng nhận

biết được làm thế nào để đảm bảo tính an toàn của trang web

Một vài lợi ích khi kết hợp thực hiện kiểm thử xâm nhập ứng dụng web trong mộtchương trình bảo mật có thể kể đến như:

- _ Giúp đánh giá cơ sở hạ tầng như tường lửa, may chủ DNS được công khai Bất kỳ

thay đổi nào đến cơ sở hạ tầng đều có thé khiến hệ thống dé bị tốn thương Kiểmthử xâm nhập web giúp xác định các cuộc tấn công trong thực tế có thê thành côngkhi truy cập vào các hệ thống nay

- _ Xác định được các lỗ hồng trong ứng dụng hoặc các route dé bị tôn thương trong

cơ sở hạ tầng trước khi kẻ tan công phát hiện và khai thác nó.

- _ Đánh giá được các chính sách bảo mật hiện có dé tìm được bat kỳ điểm yếu nao

- Giảm nguy co vi phạm đữ liệu cũng như thiệt hai và gián đoạn dich vu.

- Giúp quyết định sáng suốt hơn về các khoản dau tư bảo mật trong tương lai.

1.2.3 Quy trình kiểm thử xâm nhập ứng dụng web

Giống với một ca kiểm thử xâm nhập thông thường thì kiểm thử xâm nhập ứng dụng

web thường bao gồm 3 pha: Lập kế hoạch; Tan công/ khai thác; Báo cáo.

1.2.3.1 Pha lập kế hoạch (Trước kiểm thử):

Trước khi bắt đầu thử nghiệm, nên lập kế hoạch thu thập thông tin về ứng dụng bằngcách trả lời những câu hỏi sau: Ứng dụng này làm gì? Nó được viết bằng ngôn ngữ gì?

Lê Thị Linh - B19DCAT111 7

Trang 18

Đồ án tốt nghiệp đại học Chương 1

Ung dụng đang chạy trên phan mềm máy chủ nào? Loại thử nghiệm nao sẽ được thựchiện? Việc thử nghiệm sẽ được thực hiện như thế nào? Xác định xem QA có cần bất kỳquyền truy cập bé sung nào vào các công cụ hay không,

Xác định phạm vi và mục tiêu kiểm thir: Trước khi bắt đầu thực hiện kiểm thử, người

kiểm thử cần xác định rõ phạm vi kiểm thử Tùy thuộc vào việc khách hàng muốn kiểmthử một phần hay toàn bộ hệ thống ứng dụng web Việc xác định được mục tiêu kiểm thử

là đáp ứng nhu cầu tuân thủ hay kiểm tra hiệu suất tổng thể sẽ quyết định nên thực hiệnkiểm thử nào Vì vậy, có thé coi đây là bước quan trọng nhất khi lập kế hoạch kiểm thửxâm nhập.

Xác định loại kiểm thử: Tuy thuộc vào mục tiêu của cuộc kiểm thử xâm nhập, người

kiểm thử được cung cấp các mức độ thông tin khác nhau, các mức quyền truy cập khác

nhau vào hệ thống mục tiêu Dựa vào các mức độ đó, có thé chia kiểm thử xâm nhập ứng

dung web thành 3 kiểu là kiểm thử hộp đen, hộp trắng và hộp xám.

- Kiém thử hộp đen là loại kiểm thử mà người kiểm thử không biết gì về cấu trúc

bên trong của hệ thống mục tiêu, người kiểm thử xâm nhập sẽ hoạt động giống nhưmột tin tặc, thăm đò mọi điểm yếu có thể khai thác được từ bên ngoài

- Kiém thử hộp trang là người kiểm thử có quyền truy cập vào hệ thống như mã

nguồn, tệp nhị phân, vùng chứa và đôi khi là toàn bộ máy chủ đang chạy Cách tiếpcận này cung cấp một mức độ đảm bảo cao nhất trong một khoảng thời gian nhỏnhất

- Kiểm thử hộp xám là loại kiểm thử mà nhóm kiểm thử có một số kiến thức về một

hoặc nhiều thông tin xác thực Họ biết về cấu trúc dữ liệu, mã và thuật toán nội bộcủa mục tiêu Người kiểm thử xâm nhập có thể xây dựng được các trường hợp

kiểm thử dựa trên các tài liệu thiết kế chi tiết, chăng hạn như kiến trúc diagrams

của hệ thống đích

Thu thập thông tin: Sau khi xác định được mục tiêu kiểm thử, cần thu thập thông tin

để thực hiện các case kiểm thử Các thông tin này là các tai liệu về ứng dụng web mụctiêu như kiến trúc web, các API và thông tin cơ sở hạ tang chung, Ngoai ra, ngườikiểm thử cần phải năm được kiến thức cơ bản về giao thức HTTP/HTTPS và năm đượckiến trúc ứng dụng web, các phương pháp chặn bắt lưu lượng

Xem lại kết quả của lần kiển thử trước đó (nếu có): Cần xem lại báo cáo kiểm thử

trước đó dé năm được những lỗ hồng nào đã tồn tại trong quá khứ và biện pháp khắc phục

nào đã được áp dụng để giải quyết.

Tóm lại, điều quan trọng là cần xác định được các thành phần tạo nên một ứng dụng

web trước khi cỗ gắng khai thác nó Nhiều lỗ hổng ứng dụng không liên quan đến côngnghệ nhưng các hoạt động khai thác và các payloads cần được thực hiện dựa trên nền tảng

Lê Thị Linh - B19DCAT111 8

Trang 19

Đồ án tốt nghiệp đại học Chương 1

công nghệ của ứng dung, chang hạn như phần mềm CSDL hoặc hệ điều hành Vậy nên,

trước khi thực hiện bất kỳ cuộc tấn công nào vào một ứng dụng web, cần phải năm đượccông nghệ mà ứng dụng web đó sử dụng, thường bao gồm4 thành phan:

- Ng6n ngữ lập trình va framework

- Phan mềm máy chủ web

- Phan mềm CSDL

- _ Hệ điều hành máy chủ

1.2.3.2 Pha tấn công/ khai thác (Trong kiểm thử):

Sau khi hiểu được các điểm kiêm soát quan trọng trong hệ thống thì người kiểm thử

có thé xác định được các vector tấn công có thé xảy ra bằng cách quét và phân tích các lỗ

hồng

Dữ liệu thu thập được sẽ dùng dé phân tích Kiểm tra sự không nhất quán trong khi

xử lý dữ liệu dé xác định các mối đe doa Trong bước này sẽ bao gồm thực hiện các kỹthuật khai thác khác nhau dé khai thác các lỗ hồng đã được xác định trong bước quét các

lỗ hong Vi dụ lỗ hồng chèn mã SQL (SQL injection) dé truy cập trái phép vào CSDL, tảicác tệp độc hại lên máy chủ ứng dụng dé có quyên truy cập command-line shell, Chitiết các kỹ thuật này sẽ được trình bày trong chương 2 của đồ án

Người kiểm thử cần phải đảm bảo chạy kiểm thử với các vai trò người dùng khácnhau vì hệ thống có thé hoạt động khác nhau đối với những người dùng có đặc quyềnkhác nhau.

Người kiểm thử cũng cần phải báo cáo tất cả hoạt động khai thác nào vào hệ thống và

tuân theo quy trình báo cáo các lỗ hồng được xác định trong quá trình thử nghiệm Bước

này chủ yếu liên quan đến việc người kiểm thử tìm hiểu những gì cần phải làm sau khiphát hiện ra rằng hệ thống đã bị xâm phạm

Bắt kỳ thử nghiệm nào được thực hiện mà không có báo cáo thích hợp thì không giúpích được nhiều cho tổ chức, trường hợp thử nghiệm xâm nhập các ứng dụng web cũng

vậy Dé đảm bảo kết quả kiểm thử được chia sẻ chính xác với các bên liên quan, người

kiểm thử nên tạo báo cáo phù hợp với thông tin chi tiết về các lỗ hồng được tìm thấy,phương pháp được sử dụng dé kiểm tra, mức độ nghiêm trọng và vi trí của van đề đượctìm thấy

1.2.3.3 Pha báo cáo (Sau kiểm thử):

Sau khi quá trình thử nghiệm hoàn tất và báo cáo thử nghiệm được chia sẻ với cácbên liên quan thì các bên liên quan sẽ phải thực hiện các công việc sau kiểm thử:

Đề xuất biện pháp khắc phục: Việc kiêm thử xâm nhập sẽ không kết thúc bằng cách

xác định các lỗ hồng Nhóm liên quan bao gồm thành viên QA nên xem xét các phát hiện

được người kiểm thử báo cáo và sau đó thảo luận về cách khắc phục

Lê Thị Linh - B19DCAT111 9

Trang 20

Đồ án tốt nghiệp đại học Chương 1

Kiểm tra lại các lỗ hồng bảo mật: Sau khi thực hiện và triển khai các biện pháp khắc

phục thì người kiểm thử cần kiểm tra lại dé đảm bảo rằng các lỗ hỗng đã được vá vàkhông xuất hiện lại trong quá trình kiêm tra lại

Don đẹp: Là một phần của kiểm thử xâm nhập, người kiểm thử đã thực hiện các thayđổi với cài đặt proxy Do đó, việc don đẹp phải được thực hiện và đưa các thay đổi về nhưban đầu

Tóm lại, trong quá trình kiểm thử xâm nhập, sau khi xác định được hệ thống mục tiêu

và các mục tiêu, các thông tin sẽ được xem xét và thực hiện các biện pháp để đạt được

mục tiêu Bằng cách kiểm thử xâm nhập, người ta có thể xác định xem hệ thống có dễ bị

tan công hay không, liệu khả năng phòng thủ có đầy đủ hay không và liệu có bat kỳ biện

pháp phòng thủ nào đã bị vượt qua hay không Thông tin này được kết hợp với đánh giá

chính xác về các tác động tiềm ẩn đối với tổ chức và một loạt các biện pháp đối phó vềmặt kỹ thuật và quy trình để giảm thiêu chúng Sau khi quá trình quét lỗ hổng của máy

chủ là hoàn tat, kết quả của các thử nghiệm hoặc tan công nay sẽ được ghi lại và trình bay

dưới dạng báo cáo cho chủ sở hữu hệ thống Kiểm thử xâm nhập có thé được tiến hành

bằng nhiều công cụ khác nhau, vì vậy việc chọn đúng công cụ là rất quan trọng.

1.2.4 Các công cụ kiểm thử xâm nhập ứng dụng web

Sau khi đã khảo sát kỹ ứng dụng web theo các cách thủ công, chúng ta sẽ cân nhắc sử

dụng các công cụ đánh giá ứng dụng web dé liệt kê thêm thông tin về mục tiêu Hiện nay,

có rất nhiều công cụ hỗ trợ kiểm thử xâm nhập ứng dung web có thé kế đến như: Nmap,

Astra, Acunetix, Burp Suite, Việc lựa chọn các công cu phần mềm kiểm thử phù hợp

có thê giúp các tổ chức đáp ứng các tiêu chuẩn về quản lý an toàn thông tin cũng là một

trong những thách thức Để xác định được công cụ kiểm thử ứng dụng web phù hợp với

dự án phụ thuộc vào nhiều yếu tố bao gồm: mục tiêu cua dự an, nguồn lực có sẵn và môi

trường triển khai Dựa vào những yếu té đó, đồ án này sẽ đề ra một số tiêu chí để đánh giá

các công cụ kiểm thử xâm nhập ứng dung web

1.2.4.1 Tiêu chí đánh giá công cụ

Đề đánh giá được các công cụ kiểm thử xâm nhập ứng dụng web, có nhiều yếu tố

quan trong cần xem xét Đồ án này sẽ dựa vào một số tiêu chí sau dé đánh giá các công cụkiểm thử xâm nhập ứng dụng web

- Tinh năng chính: Mô tả các chức năng chính mà công cụ cung cấp, xác định nhanh

chóng ưu điểm cốt lõi của từng ứng dụng trong quá trình kiểm thử xâm nhập

- Tinh tương thích: Bao gồm thông tin về khả năng tương thích với công cụ trên các

nền tảng hệ điều hành, giao thức mang và trình duyệt web

- D6 phổ biến: Mô tả mức độ phổ biến của công cụ trong cộng đồng, dựa trên số

lượng người sử dụng, mức độ hỗ trợ từ cộng đồng và sự tham gia tích cực vào pháttriên.

Lê Thị Linh - B19DCAT111 10

Trang 21

Đồ án tốt nghiệp đại học Chương 1

Những tiêu chí trên giúp tạo nên một cái nhìn tông quan về khả năng và chất lượng

của mỗi công cụ trong quá trình kiểm thử ứng dụng web Từ đó có thé đưa ra đánh giáhiệu suất tổng thê dựa trên sự kết hợp các yếu tố quan trọng đối với dự án cụ thê

1.2.4.2 So sánh, đánh giá các công cụ

Dựa trên các tiêu chí đánh giá công cụ kiêm thử ứng dụng web đã nêu trên, đô án này

sẽ tong hop, phân tích, đánh giá một số công cụ kiểm thử xâm nhập được xem là phô biếnnhất hiện nay [6] Dưới đây là bảng so sánh chỉ tiết các công cụ

Bảng 1.1: Bảng đánh giá các công cụ kiểm thử xâm nhậpCông cụ Tính năng chính Tính tương thích Độ pho biến

- Nmap Quét mạng va cổng Hỗ trợ đa nền tảng Cao, rộng rãi trong

(port) cộng đông bảo mật

Wireshark | Phân tích gói tin ° Ho trợ da nen Cao, thuong su dung

mang tang và nhiêu | trong cộng đồng mang

giao thức

mạng

Metasploit | Kiểm thử Penetration Tương thích với : Cao, sử dụng

va Exploitation nhiéu hé diéu hanh rong rãi trong

hacking va pentesting

Nessus Quét lỗ hồng bảo mật | Hỗ trợ nhiều hệ điều | Cao, một trong những

hành công cụ phô biên nhât

OpenVAS Quét lỗ hồng bảo mật | Mã nguồn mở, đa nền Trung bình, cộng

tảng đồng người dùng lớn

nhưng ít phô biên

trong hacking

Acunetix Quét và phân tích lỗ | Hỗ trợ nhiều ngôn Trung bình, pho bién

hông ứng dụng web | ngữ lập trình web, trong cộng đông bảo

nhiêu hệ điêu hành mật

Burp Suite Kiểm thử và phân Tương thích với Cao, rất phô biến

tích ứng dụng web nhiêu trình duyệt trong cộng đông

pentesting

W3af Quét lỗ hồng bảo mật | Mã nguồn mở, đa nền | Thấp, cộng đồng

Trang 22

Đồ án tốt nghiệp đại học Chương 1

web tảng người dùng không lớn

Astra Kiểm thử bảo mật Hỗ trợ nhiều loại tấn Thấp, chưa được sử

ứng dụng web công dụng rộng rãi

OWASP ZAP | Kiểm thử bảo mật Tương thích nhiều Trung bình, được ưa

Suite là một công cụ có tính năng liên quan chặt chẽ đến việc kiểm thử ứng dụng web và

được đánh giá cao bởi cộng đồng người sử dụng lớn, có chuyên môn cao Đồ án này cũng

sẽ sử dụng Burp Suite để thực hiện các kỹ thuật kiểm thử ứng dụng web.

Kết chương 1

Nhu vậy, chương | đã trình bày tổng quan về các van đề bảo mật ứng dụng web: giới

thiệu các thành phần, kiến trúc của ứng dụng web, nêu thực trạng vấn đề bảo mật ứng

dụng web Bên cạnh đó trình bày các van đề kiểm thử xâm nhập web như: Quy trình kiếmthử gồm 3 pha là lập kế hoạch, khai thác và báo cáo; Nêu một số công cụ kiểm thử ứng

dung web phô biến và so sánh các công cụ này.

Lê Thị Linh - B19DCAT111 12

Trang 23

Đồ án tốt nghiệp đại học Chương 2

CHƯƠNG 2: CÁC KỸ THUẬT KIEM THU XÂM NHẬP WEB

Chương 2 giới thiệu, đánh giá các phương pháp và tiêu chuẩn nồi tiếng được sử dụng

dé kiểm thử xâm nhập, gồm có phương pháp OSSTMM và PTF, tiêu chuẩn OWASP, PTES và ISSAF Bên cạnh đó là nghiên cứu về Top 10 Owasp và các kỹ thuật kiểm thử xâm nhập một số tan công phổ biến như chèn mã SOL (SOL injection), kịch bản chéo

trang (XSS), lỗi tải tệp lên (File Upload) và lỗ hồng tấn công điều hướng đường dẫn(Path Traversal).

1.1.

2.1.

2.1 Phương pháp kiểm thử xâm nhập ứng dụng web

Phương pháp kiểm thử xâm nhập bản chất là một bộ hướng dẫn của ngành bảo mật vềcách tiến hành kiểm thử Có một số phương pháp và tiêu chuẩn nổi tiếng được thiết lập

sẵn có thể được sử dụng dé thực hiện kiểm thử Tuy nhiên, mỗi ứng dụng web khác nhau

đều yêu cầu thực hiện các loại kiểm thử khác nhau nên người kiểm thử xâm nhập có thểtạo ra các phương pháp của riêng mình bằng cách tham khảo các tiêu chuẩn có sẵn trên thịtrường Một số phương pháp và tiêu chuẩn bảo mật nồi tiếng có thể tham khảo như [7]:

- OWASP (Open Web Application Security Project)

- OSSTMM (Open Source Security Testing Methodology Manual)

- PTES (Penetration Testing Execution Standard)

- PTF (Penetration Testing Framework)

- ISSAF (Information Systems Security Assessment Framework)

2.1.1 Giới thiệu các phương pháp

2.1.1.1 OWASP

OWASP (Du an Bao mat Ung dụng Web Mở) là một tổ chức phi lợi nhuận quốc tế

chuyên về bảo mật ứng dụng web Một trong những nguyên tắc cốt lõi của OWASP là tất

cả các tài liệu của tổ chức đều miễn phí và dé dàng truy cập giúp mọi người đặc biệt làngành an ninh mạng có thé cải thiện tính bảo mật của ứng dụng web Mục tiêu chính củaOWASP là cung cấp thông tin, công cụ, tài liệu hướng dẫn dé các nhà phát triển, kiểm thử

và quản trị ứng dụng web nâng cao tính bảo mật trong quá trình phát triển phần mềm

OWASP được biết đến nhiều nhất qua OWASP Top 10.

OWASP Top 10 là một danh sách các lỗ hồng bao mật phổ biến và nguy hiểm nhất

trong các ứng dụng web Danh sách này được OWASP cập nhật định kỳ để cung cấp một

cái nhìn tổng quan về những rủi ro bảo mật quan trọng mà các nhà phát triển và chuyêngia bảo mật cần chú ý Phiên bản OWASP Top 10 gần đây nhất là năm 2021 với danh

sách các lỗ hồng có một số thay đồi so với năm 2017 [8]:

Lê Thị Linh - BI9DCATIII 13

Trang 24

Đồ án tốt nghiệp đại học Chương 2

OWASP Top 10 Vulnerabilities

2 Cryptographic Failures

3 Injection

4 Insecure Design New Category

5 Security Misconfiguration 6th

6 Vulnerable and Outdated Components 9th

7 Identification and Authentication Failures

8 Software and Data Integrity Failures New Category

Việc thực hiện kiểm thử xâm nhập ứng dụng web theo chuẩn OWASP mô tả việcđánh giá bảo mật để xác định các 16 hổng được nêu trong Top 10 OWASP Chuan

OWASP được thiết kế dé xác định, khai thác và giúp giải quyết các lỗ hồng dé mọi điểm

yếu được phát hiện và giải quyết nhanh chóng với mục dich an toàn bảo mật hơn cho tổ

chức.

Bên cạnh OWASP Top 10, OWASP còn cung cấp một phương pháp chi tiết hơn dékiểm thử xâm nhập ứng dụng web thông qua OWASP Testing Guide (OTG) Đây là một

hướng dẫn chỉ tiết và toàn diện về kiểm thử bảo mật ứng dụng web gồm nhiều khía cạnh

và loại kiếm thử khác nhau bao gồm kiêm thử mã nguồn, kiểm thử chức năng và nhiềunội dung khác Trong khi OWASP Top 10 tập trung vào kiểm thử xâm nhập, tương táctrực tiếp với ứng dụng trong môi trường thực tế thì OTG sẽ bao gồm cả kiểm thử xâmnhập và kiểm thử tĩnh Quy trình kiểm thử theo OTG được chia thành 11 công việc (mục)

Đề hoàn thành kiểm tra, mỗi công việc được chia ra nhiều checklist Tổng cộng có tất cả

Lê Thị Linh - B19DCAT111 14

Trang 25

Đồ án tốt nghiệp đại học Chương 2

87 checklist cho 11 mục [9]:

- Information Gathering

- Configuration and Deployment Management Testing

- Identify Management Testing

- Authentication Testing

- Authorization Testing

- Session Management Testing

- Input Validation Testing

- Testing for Error Handing

- Testing for weak Cryptography

- Bussiness Logic Testing

- Client-Side Testing

Tóm lại, trong khi OTG cung cấp một hướng dan chi tiết và toàn diện về kiểm thử

bảo mật ứng dụng web, thì OWASP Top 10 tập trung vào những rủi ro quan trọng nhất và

phô biến nhất mà các tô chức và nhà phát triển cần lưu ý Việc sử dụng cả hai phươngpháp trong chế độ tích hợp có thê đảm bảo kiểm thử không chỉ tập trung vào những rủi robảo mật mà còn bao quát toàn bộ được ứng dụng giúp việc kiểm thử ứng dụng web được

thực hiện hiệu quả và toàn diện.

2112 OSSTMM

OSSTMM (Open Source Security Testing Methodology Manual) là một hướng dẫn

và phương pháp kiểm thử bảo mật mã nguồn mở được phát triển bởi ISECOM (Institute

for Security and Open Methodologies) Hướng dẫn này được cập nhật 6 tháng một lần

hoặc lâu hơn dé luôn phù hợp với tình trạng kiểm thử bảo mật hiện nay OSSTMM đượcthiết kế để cung cấp một quy trình kiểm thử an toàn và có tính chất khoa học, OSSTMM

tập trung vào việc xác định và đánh giá rủi ro bảo mật trong môi trường hệ thống và

mạng.

Dé giúp tô chức hiểu rõ về van đề bảo mật của mình, OSSTMM hướng dẫn các doanh

nghiệp kiểm thử hoạt động bảo mật của mình thông qua 5 kênh Làm như vậy sẽ giúp họxác định xem quy trình bảo mật của họ thực sự hoạt động như thế nào Về cơ bản, nó sẽtiết lộ những gì hoạt động của tổ chức đạt được chứ không phải những gì chưa dat được 5kênh đó bao gồm:

- Human Security: Đánh giá nhận thức về an ninh của con người

- Physical Security: Kiểm tra an ninh liên quan đến ha tang, cơ sở vật chat

- Wireless Communications: Kiểm tra các tín hiệu va thông tin liên lạc điện tử bao

gồm tat cả các khía cạnh của bảo mật không dây.

- Telecommunications: Kiểm tra các hệ thống và mạng điện tử được sử dụng dé liên

lac bao gồm các thiết bị và dịch vụ viễn thông như VoIP,

- Data Network: bao gồm chính sách quan lý tất cả các dit liệu trên mang

Lê Thị Linh - B19DCAT111 15

Trang 26

Đồ án tốt nghiệp đại học Chương 2

Tóm lại, OSSTMM cung cấp một phương pháp khoa học để mô tả chính xác đặcđiểm của bảo mật vận hành (OpSec) thông qua kiểm thử và tương tác các kết quả kiểmthử một cách nhất quán và đáng tin cậy Hướng dẫn này có thê thích ứng với hầu hết mọiloại kiểm thử, bao gồm: Kiểm thử xâm nhập, đánh giá bảo mật, đánh giá lỗ hồng, red-teaming, blue-teaming, Nó được viết dưới dang tài liệu nghiên cứu bao mật và đượcthiết kế để xác minh bảo mật thực tế và trình bày các số liệu ở cấp độ chuyên nghiệp

2.1.1.3 PTES

PTES (The Penetration Testing Excution Standard) là một tiêu chuẩn được phát triển

và tiếp tục được cải tiến bởi một nhóm chuyên gia bảo mật thông tin từ nhiều ngành khác nhau PTES cung cấp nguyên tắc co bản về những gi cần thiết trong kiểm thử xâm nhập,

từ giao tiếp ban đầu giữa khách hàng và người kiểm thử đến nội dung của báo cáo

Mục tiêu của PTES là cung cấp một chuẩn chất lượng cho việc kiêm thử xâm nhập.

Nó giúp định rõ các bước và quy trình từ khám phá đến báo cáo, tạo ra một cơ sở cho việcđảm bảo rằng kiểm thử xâm nhập được thực hiện một cách toàn diện

Phương pháp PTES là một cách tiếp cận có cấu trúc với các pha được hướng dẫn cuthể PTES chia quá trình kiểm thử thành 7 giai đoạn, mỗi giai đoạn có những bước vàhướng dẫn cụ thê, giúp tổ chức quản lý và hiểu rõ từng khía cạnh của kiểm thử 7 giai

đoạn đó là:

- _ Tương tác trước kiểm thử

- Thu thập thông tin tình báo

PTES không giới hạn cho một ngành công nghiệp hay một môi trường cụ thể Điều

này làm cho nó trở nên phô biến và áp dụng cho nhiều loại tổ chức, từ doanh nghiệp đến

tổ chức phi lợi nhuận Băng cách hướng dẫn và mô tả rõ ràng, PTES giúp người mới thamgia lĩnh vực kiểm thử xâm nhập hiểu được quá trình và những yếu tố quan trọng Tóm lại,PTES là một phương pháp hữu ích và có tô chức dé hiểu và thực hiện kiểm thử xâm nhập

Trang 27

Đồ án tốt nghiệp đại học Chương 2

cung cấp hướng dẫn kiểm thử xâm nhập thực hành toàn diện, chỉ tiết các công cụ kiểm

thử theo từng danh mục Lĩnh vực chính của kiêm thử xâm nhập ở đây bao gồm khám phá

và thăm dò dấu vét mạng (trinh sát)

PTF là một tập lệnh Python được thiết kế cho các bản phân phối dựa trên

Debian/Ubuntu/ArchLinux dé tạo ra một ban phân phối tương tự cho kiểm thử xâm nhập

Nó cố gang cài đặt tat cả các công cụ kiểm thử xâm nhập mới nhất và xuất sắc nhất, biêndịch chúng và tạo điều kiện cho người kiểm thử cài đặt/cập nhật bản phân phối của mìnhtrên bất kỳ máy tinh nào Mọi thứ được tô chức theo kiểu gan kết với tiêu chuan PTES(Penetration Testing Execution Standard) và loại bỏ những thứ ít được sử dụng PTF đơngiản hóa quá trình cài đặt và đóng gói, đồng thời tạo ra một toàn bộ khung kiểm thử xâmnhập Do là một framework, có thé tuy chinh cấu hình theo nhu cầu sử dụng của dự ánkiểm thử

PTF là một công cụ hữu ích giúp tăng cường khả năng tự động hóa trong kiểm thửxâm nhập và là lựa chọn phổ biến trong cộng đồng an toàn thông tin

2.115 ISSAF

ISSAF (Khung Thực Hiện Đánh Giá An Ninh Hệ Thống Thông Tin) là một phương

pháp chuyên sâu trong kiểm thử xâm nhập Cuốn hướng dẫn chỉ tiết của ISSAF (Open

Information Systems Security Group, 2006) với hơn 1200 trang, mô ta cau trúc dang sauphương pháp này Phương pháp thực hiện của ISSAF rất dé hiểu, giúp các tổ chức vangười kiểm thử xâm nhập cá nhân có thé dé dang tùy chỉnh, tao ra các kế hoạch kiểm thửcủa riêng mình Bất kỳ người kiểm thử xâm nhập sử dụng nhiều công cụ nào đều nên tuântheo phương pháp của ISSAF.

Mục đích chính của ISSAF là hỗ trợ quá trình đánh giá an ninh của hệ thống thôngtin Nó giúp tô chức xác định, đánh giá và giảm thiểu các rủi ro an ninh có thé đối mặtbang cách cung cấp hướng dan chi tiết từng bước cho một quy trình kiểm thử đánh giá anninh: Từ việc xác định mục tiêu đến thu thập thông tin và phân tích rủi ro

ISSAF không chỉ dừng lại ở việc kiểm thử xâm nhập đơn giản Nó còn bao gồm việctao ra các công cụ có thé được sử dụng dé giáo dục những người có quyền truy cập vàomạng Nó cũng đảm bảo rằng những người sử dụng mạng cụ thé tuân thủ theo các tiêu

chuân pháp luật thích hợp.

2.1.2 So sảnh các phương pháp

Qua tìm hiểu 5 tiêu chuẩn và phương pháp hàng đầu hiện nay trong việc kiểm thử

xâm nhập, rút ra được một số đặc điểm chính về ưu điểm và hạn chế của các phương pháp

như sau:

Lê Thị Linh - B19DCAT111 17

Trang 28

Đồ án tốt nghiệp đại học Chương 2

Bang 2.2: Bảng so sánh các phương pháp nổi tiếng trong kiém thử xâm nhập Phương pháp Ưu điểm Hạn chế

OWASP - Tập trung chủ yêu vào bảo mật ứng - Chu yếu tập trung vào

dụng web ứng dụng web, hạn

- Cung cập danh sách OWASP Top 10 chế khi đối mặt với hệ

về các rủi ro phô biên và hướng dan đê thống phức t i |

tả ‘A P g phức tap.

giam thiéu chung.

- Được cập nhật thường xuyên với cộng

đồng tích cực

OSSTMM | - Cung cấp phương pháp thực hiện kiểm - Có thé đòi hỏi nhiều

thử bảo mật toàn diện và có phạm VI nguồn lực do phạm VI

rộng ` rong.

- Tập trung đánh gia rủi ro từ nhiêu khía

cạnh bao gồm con người, vật lý, logic

PTES - Xác định các giai đoạn cụ thể của quá - Cân sự hiểu biết sâu

trình kiểm thử xâm nhập sắc về quy trình và kỹ

- Tích hợp nhiều khía cạnh của kiểm thử thuật kiểm thử

bảo mật gồm: kiểm thử ứng dụng và ‘

kiém thir ha tang

- Phổ biến trong ngành và được nhiều tô

chức công nhận.

PTE - Cung cấp nên tảng tự động hóa nhiêu | Doi hỏi hiệu biết vững chắc

công đoạn trong quá trình kiêm thử về các công cụ và kỹ thuật

- Hỗ trợ nhiều công cụ kiểm thử phổ | kiểm thử.

biến.

- Linh hoạt và có thể tùy chỉnh cho nhu

cầu cụ thể.

ISSAF - Cung cấp một khung làm việc cho qua - Không được sử dụng

trình đánh gia an ninh thông tin rộng rãi như các

- Bao gôm các khía cạnh kỹ thuật và phương pháp khác, có

quản lý thể gặp khó khăn

trong việc tìm nguồn

tư liệu và hỗ trợ từ

cộng đồng.

2.2 Các lỗ hong ứng dụng web phố biến

2.2.1 Sự phát triển của các lỗ hong ứng dụng web

Các biến GET và POST là một phần cua giao thức HTTP, chịu trách nhiệm tạo điềukiện giao tiếp giữa các chương trình web và người dùng bằng cách cung cấp cho họ cácthành phần của FORM nhất định, chăng hạn như các nút hoặc các trường nhập dữ liệu.Việc xử lý không đúng các mục dit liệu bên trong các yêu cầu HTTP dẫn đến các lỗ hồng

Lê Thị Linh - B19DCAT111 18

Trang 29

Đồ án tốt nghiệp đại học Chương 2

bảo mật nghiêm trọng nhất trong các ứng dụng web Giao thức SSL cũng không thê tránh

được các vấn đề bảo mật vì nó chỉ cho phép truyền đữ liệu an toàn chứ không đánh giácác truy van HTTP Các ứng dụng web đóng vai trò như một công vào CSDL chứa ditliệu và nội dung quan trọng.

Một số lỗi nguy hiểm chính đối với lớp máy chủ CSDL là SQL injection, truy cập tráiphép và các tan công bẻ khóa mật khâu Hau hết các lỗ hồng SQL injection đều xảy ra doxác thực đầu vào không day đủ Các ứng dung web thường lưu trữ các dữ liệu nhạy cảmtrong CSDL hoặc hệ thống file Các nhà phát triển thường xuyên mắc các lỗi trong mã

hóa đề bảo mật các thông tin này.

Vị HTTP là một giao thức không trạng thái nên các chương trình web sử dụng các

phương pháp khác nhau đề duy trì trạng thái phiên Phiên (session) là một chuỗi tương tácgiữa người dùng và ứng dụng web trong một lần truy cập vào trang web Quản lý phiênthường được thực hiện bằng một chuỗi duy nhất gọi là session ID, được gửi đến máy chủ

ứng dụng web cùng mỗi request Hầu hết các ngôn ngữ lập trình web đều cho phép các

phiên sử dụng biến GET hoặc cookie Nếu kẻ tấn công có thể đoán hoặc đánh cắp session

ID, chúng có thé sửa đôi phiên của người dùng khác.

2.2.2 Giới thiệu 10 lỗ hỗng bảo mật OWASP 2021

A01 — Broken Access Control: Lỗi kiểm soát truy cập bị phá vỡ là lỗi xảy ra khi thiếucác tính năng phát hiện lỗi tự động hoặc các hàm kiểm tra và đánh giá chưa hiệu quả dolỗi ở việc phân quyền trong hệ thống Tin tặc có thé lợi dụng lỗi nay dé truy cập vàoquyền người dùng dé thêm, sửa, xóa các bản ghi Một trong những lỗ hồng tiêu biéu củaviệc không kiểm soát truy cập đúng đắn là lỗ hồng IDOR (Insecure Direct ObjectReferences) hay hiểu đơn giản là những tìm kiếm không hợp lệ

Một số ứng dụng web xác minh quyền truy cập ở cấp chức năng trước khi cung cấpcác chức năng cho người dùng Tuy nhiên, nếu mỗi chức năng đều có thê truy cập được,các chương trình phải vượt qua bước kiểm tra kiểm soát truy cập giống như máy chủ Khi

yêu cầu không được xác minh, kẻ tân công có thé có quyền truy cập vào các tính năng mà

không có sự cho phép cần thiết

A02 — Crytographic Failtures: Lỗi mật mã, những lỗi mật mã gây ra những hậu quả

nghiêm trọng khi chúng là nguyên nhân của việc lộ các dữ liệu nhạy cảm quan trọng hoặcxâm phạm hệ thống Các nguyên nhân dẫn đến lỗ hồng này là do việc triển khai không

đúng của thuật toán mã hóa, sử dụng khóa yếu hoặc do quản lý khóa không an toàn.

A03 — Injection: Lỗi chèn mã độc sẽ lợi dụng lỗ hồng từ các câu lệnh truy vấn củaứng dụng Tin tặc sé lợi dụng chèn một đoạn mã SQL để nam quyền thực thi website vàkhai thác dữ liệu từ CSDL khi người dùng nhập vào những biểu mẫu (form) trên trangweb Lỗ hồng Injection thường liên quan đến các tấn công như SQL Injection, NoSQLInjection hoặc thậm chi là tan công thực thi mã (Code Injection)

Lê Thị Linh - B19DCAT111 19

Trang 30

Đồ án tốt nghiệp đại học Chương 2

A04 — Insecure Design: Lỗi thiét ké không bảo mật là một trong những danh mục mới

trong top 10 Tin tặc lợi dụng khai thác các sai sót trong thiết kế website đề tấn côngngười dùng Lỗ hồng này xuất hiện khi ứng dụng được thiết kế mà không tính đến các vấn

đề bảo mật, tạo điều kiện cho những lỗ hồng như sự không đồng nhất trong kiểm soát truy

Các cài đặt an toàn cần được phát triển, triển khai và duy trì.

Dé tránh lỗi nay, các nhà quản trị nên cập nhật các cau hình bảo mật mới được cập

nhật thường xuyên.

A06 — Vulnerable and Outdated Components: Lỗi đến từ các thành phần bao mật dễ

bị tổn hại và lỗi thời Việc sử dụng các thành phan có lỗ hồng hoặc sử dụng phiên bản cũ

và lỗi thời của thành phần tạo ra những điểm yếu có thê bị tận dụng bởi tấn công, đe dọa

tính toàn vẹn và bảo mật của hệ thống.

A07 — Broken Authentication: Lỗi xác thực bị phá vỡ tập trung vào các lỗ hồng liênquan đến xác thực và quyên truy cập Nó là kết quả của việc triển khai và quản lý phiênkhông đúng cách, tạo ra cơ hội cho tấn công giả mạo người dùng và các truy cập tráiphép.

A08 — Software and Data Integrity Failtures: Lỗi toàn vẹn đữ liệu và phần mềm tập

trung vào việc đưa ra các giả định liên quan đến cập nhật phần mềm, dit liệu quan trọng

và đường ống CI/CD mà không xác minh tính toàn vẹn Nói cách khác, lỗi này xuất phát

từ sự mat mát hoặc thay đổi không đáng kể trong toàn vẹn dữ liệu phan mềm

A09 — Security Logging and Monitoring Failtures: Lỗi theo dõi và ghi nhật ky bảomật là kết quả của việc thiếu sót trong quá trình theo dõi nhật ký sự kiện quan trọng trong

hệ thống Sự hiểu biết không đầy đủ về những hoạt động xảy ra có thé tạo cơ hội cho tấn

công không phát hiện được giả mạo Các lỗi trong danh mục này có thé ảnh hưởng trựctiếp đến kha năng hién thị và cảnh báo sự cố

A10 — Server-Side Request Forgery (SSRF): Lỗi giả mạo yêu cầu phía máy chủ là kết

quả của cuộc tấn công giả mạo yêu cầu khía máy chủ khiến cho ứng dụng thực hiện các

yêu cầu không được kiểm soát Dẫn đến những hậu quả nghiêm trọng như truy cập trái phép vào hệ thống nội bộ, bộ nhớ đệm và thậm chí là tấn công mạng nội bộ.

2.3 Kỹ thuật kiểm thử xâm nhập một số 16 hong ứng dụng pho biến

Phần này nhăm mục đích trình bày các lỗ hỗng bảo mật phố biến và nêu các biện

Lê Thị Linh - B19DCAT111 20

Trang 31

Đồ án tốt nghiệp đại học Chương 2

pháp đối phó bao mật khác nhau đã được đề xuất dé giảm thiểu các lỗ hổng trên web.

Ngoài ra cung cấp cái nhìn tổng quan hơn về các lỗ hổng web và ánh xạ các phương phápphát hiện phù hợp cho từng lỗ hồng

SQL Injection Attack (SQLi)

1 Hacker identifies 2 Malicious SQL

vulnerable, SQL- LEED query is validated &

driven website & command is injects malicious SQL executed by query via input data database.

@ ” WEBSITE ©INPUT FIELDS

3 Hacker is granted access

to view and alter records or potentially act as database

administrator.

HACKER © DATABASE

Nếu chèn mã SQL thành công, có thể giúp kẻ tấn công vượt qua khâu xác thực, truy

vấn các dữ liệu nhạy cảm, thêm, sửa, xóa dữ liệu hoặc nguy hiểm hơn là chiếm quyền điều khiển thông qua việc thực hiện các lời gọi hệ thống

2.3.1.2 Các dạng tan công SQL injection:

In-band SQLi: Là tan công mà kẻ tấn công có thé tan công va thu thập kết quả trựctiếp trên cùng một kênh liên lạc Có 2 dạng tan công chính là:

- Error-based SQLi: Chèn các giá trị đầu vào không hợp lệ, làm cho máy chủ CSDL

trả về các thông báo lỗi Dựa vào đó có thé thu thập được các thông tin về CSDL

như phiên bản, tên, các bảng, cầu trúc CSDL,

- UNION-based SQLi: Sử dụng toán tử UNION dé kết hợp nhiều câu truy vấn va

nhận được HTTP Response chứa dit liệu được tra về từ CSDL dé truy vấn dữ liệu

Trang 32

Đồ án tốt nghiệp đại học Chương 2

chính là:

- Boolean-based SOLi: Chèn các payload làm ứng dụng trả về các kết quả khác

nhau, phụ thuộc vao câu truy van là True hay False

- Time-based SQLI: Gửi các câu truy vấn tới CSDL, buộc CSDL phải chờ một thời

gian (tính băng giây) trước khi phản hồi về cho ứng dụng web

Out-of-band SQLi: Là dạng tấn công truyền vào payload khiến cho databaseserver

xử lý, tạo request ngoài băng tần tới 1 máy mà hacker kiểm soát Hacker không nhậnđược phản hồi từ ứng dụng bị tan công trên cùng một kênh liên lạc mà thay vào đó có thékhiến ứng dụng gửi dữ liệu đến một máy tính từ xa mà chúng kiểm soát

Second-oder Injection (Stored SQLi): Là phương pháp pháp chèn vào CSDL một

đoạn mã SQL mà chưa được thực thi ngay nên chưa gây nguy hiểm cho hệ thống Khi

ứng dụng xử lý một HTTP request khác (một giao diện thứ 2) mà cần sử dụng đến dữ liệunày, nó sẽ truy vấn đến đữ liệu đó (đoạn mã đã được lưu trong CSDL) và đoạn mã đó sẽ

được thực thi.

2.3.1.3 Kỹ thuật kiểm thử

Kỹ thuật phát hiện

Bước đầu tiên trong kỹ thuật kiểm thử SQL injection là cần hiểu khi nào thì ứng dụng

tương tác với máy chủ CSDL (CSDL) dé truy cập một số dữ liệu Một số ví dụ như sau:

- Biéu mẫu xác thực: Khi xác thực được thực hiện băng form, rất có thể thông tin

đăng nhập của người dùng được kiểm tra dựa trên CSDL có chứa tất cả tên ngườidùng và mật khâu

- _ Công cụ tìm kiếm: Chuỗi do người dùng gửi có thé được sử dụng trong truy van

SQL trích xuất tat cả các bản ghi có liên quan từ CSDL.

Người kiểm thử cần tạo danh sách tất cả các đầu vào có giá tri có thể sử dụng dé tao

truy van SQL, bao gom cac truong an của yêu cầu POST va sau đó kiểm tra chúng một cách riêng biệt, cố gắng can thiệp vào truy van dé tạo ra một lỗi.

Thông thường, có thé phát hiện lỗ héng SQL injection bằng cách thêm dau nháy đơn

(‘) hoặc một dấu chấm phay (;) vào trường tham số cần kiểm tra Nếu ứng dụng không có

bộ lọc đầu vào thì sẽ gây ra lỗi truy vấn không chính xác Dựa vào đó có thể nhận biết

được ứng dụng có thê thực hiện chèn mã SQL tại vị trí đó.

Kỹ thuật khai thác SQL injection tiêu chuẩnXét ví dụ câu truy vấn sau:

SELECT * FROM users WHERE username = ‘$username’;

Nếu người dùng nhập một tham số $username như "' OR 1=1; " thi truy van sé trởthành:

Lê Thị Linh - B19DCAT111 22

Trang 33

Đồ án tốt nghiệp đại học Chương 2

SELECT * FROM users WHERE username =" OR I=l]; ';

Trong trường hợp này, điều kiện 1=1 luôn đúng, vì vậy toàn bộ bang users sẽ được trả

về, và dấu được sử dụng để chấm dứt phần còn lại của truy vẫn, ngăn cản mọi điều kiện sau đó Tương tự như vậy, có thể thực hiện các truy van dé truy cập toàn bộ CSDL.

Mặc dù ngôn ngữ SQL là một tiêu chuẩn, nhưng các Hệ thống quản lý CSDL lại cótính đặc thù và khác nhau ở nhiều khía cạnh như cách dụng các lệnh, các hàm dé truy xuat

dữ liệu Do đó, muốn khai thác SQL injection ở mức nâng cao hơn thì người kiểm thử can

biết được CSDL back-end là gì.

Kỹ thuật khai thác chèn mã SQL boolean

Kỹ thuật khai thác Boolean rất hữu ích khi người kiểm thử phát hiện tình huống BlindSQL Injection, nghĩa là không có gì được biết về kết quả của một toán tử Ví dụ: lập trìnhviên đã tạo trang lỗi tùy chỉnh không tiết lộ bất kỳ điều gì trên cấu trúc của truy vấn hoặctrên cơ sở đữ liệu (Trang không trả về lỗi SQL, nó có thê chỉ trả về HTTP 500, 404 hoặc

chuyền hướng).

Bằng cách sử dụng các phương pháp suy luận, có thé thành công trong việc khôi phục

các giá trị của một số trường mong muốn Phương pháp này bao gồm thực hiện một loạt

các truy vấn boolean đối với máy chủ, quan sát các phản hồi và cuối cùng suy ra ý nghĩa của các câu trả lời đó.

Kỹ thuật khai thác time delay

Ky thuật khai thác độ trễ thời gian rất hữu ích khi người kiểm thử tìm thấy tình huốngBlind SQL Injection, trong đó không có gì được biết về kết quả của một hoạt động Kỹthuật này bao gồm việc gửi một truy vấn được đưa vào và trong trường hợp điều kiện làđúng, người kiểm tra có thé theo dõi thời gian cần thiết để máy chủ phản hồi Vi dụ,người kiểm thử muốn kiểm thử xem phiên bản cơ sở dit liệu có phải là 10.x hay không,nếu đúng thì dùng lệnh sleep(20) khiến máy chủ trì hoãn 20 giây hoặc hơn nếu cần đểquan sát.

Thông thường, các kỹ thuật được trình bày ở trên đều có thể thực hiện tự động bằngcác công cụ kiêm thử như SQLmap, Burp Suite,

2.3.1.4 Cách phòng chống tấn công SOL injection ;

- Sw dung Prepared Satements va Parameterized Queries: Sử dụng các câu truy van

đã được chuẩn bị và tham số hóa Điều này giúp ngăn chặn kẻ tan công chèn mã

SQL vào các truy vấn

- Kiểm tra và Xử lý dữ liệu đầu vào, loại bỏ các ký tự đặc biệt trong truy vấn

- Áp dụng nguyên tắc quyền tối thiểu

Lê Thị Linh - B19DCAT111 23

Trang 34

Đồ án tốt nghiệp đại học Chương 2

- Sur dụng ORM (Object-Relational Mapping) dé tạo và thực hiện các truy van SQL

một cách tự động ORM an đi các chi tiết SQL cụ thé và cung cấp cách tiếp cận antoàn hơn với CSDL.

- _ Kiểm tra và ghi nhật ký để sớm phát hiện các hành vi đáng ngờ hoặc tan công

- Tu động hóa bảo mật bằng các công cụ kiểm thử tự động quét các lỗ hông

- Cap nhật và theo dõi bao mật

- Chia tách dit liệu và truy van trong các chuỗi người dùng

2.3.2 Cross-Site Scripting (XSS)

Cross-site scripting (Kịch bản chéo trang web) là một lỗ hồng bao mật web cho phép

kẻ tan công khai thác tương tác giữa người dùng và ứng dụng bị lỗi Khi một trang web

không xử lý đúng cách hoặc không kiểm tra đầu vào từ người dùng, kẻ tấn công có thê

chèn mã độc (script) vào trang web đó Khi người dùng truy cập vào trang web nay, mã

độc được thực thi trong trình duyệt của họ Điều này cho phép kẻ tan công chiếm đượckiểm soát trang web và ăn cắp thông tin cá nhân của người dùng, như tên đăng nhập, mậtkhẩu hoặc thậm chí đánh cắp phiên làm việc (session) của họ Có 3 loại tan công XSS là:

Reflected XSS xảy ra khi kẻ tấn công đưa mã thực thi của trình duyệt vào trong một

phản hồi HTTP duy nhất Cuộc tấn công đưa vào ứng dụng nhưng không được lưu trữ, nókhông liên tục và chỉ tác động đến những người dùng mở liên kết độc hại hoặc trang web

của bên thứ ba Chuỗi tan công bao gồm một phan của các tham số URI hoặc HTTP được

tạo thủ công, được ứng dụng xử lý không đúng cách và được gửi đến cho nạn nhân

Reflected XSS là một dang tấn công mà kẻ tan công chèn mã JavaScript độc hại vào

các trang web và khi người dùng truy cập trang web đó, mã JavaScript sẽ được thực thi trên trình duyệt của người dùng Khác biệt so với Stored XSS là trong Reflected XSS, mã

độc chỉ được chèn vào một request rồi phản hồi (reflected) cho người dùng.

Cơ chế hoạt động

Kẻ tấn công tao ra một URL đạc biệt hoặc một form có chứa đoạn mã JavaScript độchại Khi người dùng truy cập vào URL hoặc gửi form này, dữ liệu đầu vào của ngườidùng được nhúng vào trang web và mã JavaScript sẽ được kích hoạt Dẫn đến mat capthông tin cá nhân, đăng nhập giả mạo, chuyền hướng người dùng đến các trang web độchại hoặc thực hiện hành vi không mong muốn khác

Mô hình chung của tan công này bao gồm một bước thiết kế, kẻ tắn công tạo một URI

vi phạm; một bước kỹ thuật xã hội, kẻ tan công có gắng thuyết phục nạn nhân tai URI này

Lê Thị Linh - B19DCAT111 24

Trang 35

Đồ án tốt nghiệp đại học Chương 2

trên trình duyệt của họ và cuối cùng là thực thi mã độc sử dụng trình duyệt của nạn nhân.

Các dạng tan công phố biến

Có nhiều loại Reflected XSS khác nhau mà kẻ tan công có thé sử dụng Dưới đây làmột số loại phô biến:

- Tan công thông qua các tham số URL: kẻ tan công chèn các mã độc hại vào tham

số trong URL của trang web Khi người dùng truy cập URL này, mã độc hại đượcnhúng vào trang và thực thị trên trình duyệt của họ

- _ Tấn công thông qua các form nhập liệu: Kẻ tan công tạo một form nhập liệu có

chứa mã JavaScript độc hại, khi người dùng gửi form này, dữ liệu đầu vào của họ

được nhúng vào trang web và mã độc hại được kích hoạt.

- Tan công qua email hoặc tin nhắn: Kẻ tan công tao các email hoặc tin nhắn chứa

liên kết độc hại và lừa người dùng nhắn vào liên kết

- Tan công thông qua trường HTTP headers: Kẻ tấn công chèn mã độc vào các

trường HTTP headers như Referer hoặc User-Agent Khi trình duyệt gửi yêu cầu

đến trang web, mã độc hai sẽ được thực thi.

- Tan công thông qua các kịch bản chèn quảng cáo

Kỹ thuật kiểm thử

Kiểm thử hộp đen bao gồm ít nhất 3 giai đoạn:

Giai đoạn 1 — Phát hiện các vector đầu vào: Đối với mỗi trang web, người kiểm thửcần nắm được tất cả các biến người dùng xác định của ứng dụng web và cách nhập chúng.Bao gồm các đầu vào ân hoặc không rõ rang, ví dụ tham số HTTP, dữ liệu POST, giá trịcác biểu mẫu ẩn và các giá trị chọn được xác định trước

Giai đoạn 2 — Phân tích các vector đầu vào: Phân tích từng vector đầu vào dé pháthiện các lỗ hồng tiềm ấn Dé phát hiện lỗ hồng XSS, người kiểm thử thường sẽ sử dụng

dữ liệu đầu vào được tạo thủ công đặc biệt với mỗi vector đầu vào Ví dụ một dữ liệu đầu

vào kiểm thử như sau:

<script>alert(1)</script>

"><script>alert(document.cookie)</script>

Giai đoạn 3 — Kiểm tra tác động: Đối với mỗi dau vào thử nghiệm trong giai đoạn

trước, người kiểm thử sẽ phân tích kết quả và xác định xem kết quả đó có đại điện chomột lỗ hồng bảo mật có tác động thực tế đến ứng dụng web hay không Cần xác định

được bất kỳ ký tự nào không được mã hóa, thay thế hoặc lọc đúng cách Nên thay thế tất

cả các ký tự đặc biệt HTML băng các thực thé HTML như:

Trang 36

Đồ án tốt nghiệp đại học Chương 2

Trong trường hợp kiểm thử hộp trang, người kiểm thử có sẵn mã nguồn, tất cả các

biến nhận từ người dùng cần được phân tích Hơn nữa, người kiểm thử nên phân tích bat

kỳ quy trình làm sạch dit liệu nào dé xác định xem có thé phá vỡ quy trình này hay không.2.3.2.2 Stored XSS

M6 ta 16 hong

Stored XSS là loại kịch bản XSS nguy hiểm nhất Cac ứng dung web cho phép người

dùng lưu trữ dữ liệu có khả năng bị loại tân công này.

Stored XSS xảy ra khi một ứng dụng web thu thập thông tin đầu vào độc hại từ người

dùng, lưu trữ thông tin đó vào kho dit liệu để sử dụng sau này Do đó, dữ liệu độc hại trởthành một phần của trang web và chạy trong trình duyệt của người dùng theo các đặcquyền của ứng dụng web

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

- Danh cặp trình duyệt của người dùng khác

- Thu thập thông tin nhạy cảm được người dùng ứng dụng xem

- Gia mạo của ứng dụng

- Quét công của các máy chủ nội bộ (liên quan người dùng ứng dụng web)

- Phan phối trực tiếp các khai thác trên trình duyệt

- Cac hoạt động độc hại khác

Cơ chế tan công Stored XSS được lưu trữ không cần một liên kết độc hại để bị khai thác Khai thác

thành công ngay khi người dùng truy cập trang có mã độc XSS được lưu trữ Các giai

đoạn có liên quan đến một kịch bản tấn công XSS được lưu trữ điển hình:

- _ Kẻ tấn công lưu trữ mã độc hại vào trang dé bị tan công

- Nguoi dùng xác thực trong ứng dụng

Lê Thị Linh - B19DCAT111 26

Trang 37

Đồ án tốt nghiệp đại học Chương 2

- Người dùng truy cập trang dé bị tan công

- Ma độc hại được thực thi bởi trình duyệt người dùng

Kỹ thuật kiểm thửKiểm thử hộp đen giống với kiểm thử Reflected XSS, kỹ thuật kiểm thử Stored XSScũng gồm 3 giai đoạn:

Giai đoạn 1 — Phát hiện biểu mẫu đầu vào: Xác định tất cả các điểm nơi đầu vào của

người dùng được lưu trữ vào back-end và sau đó hién thị bởi ứng dụng Có thể tìm thấy ở

các ví dụ điển hình sau: Giỏ hàng, ứng dung cho phép tải tệp lên, bình luận, nhật ký,

Giai đoạn 2 — Phân tích mã HTML: Đầu vào được ứng dụng lưu trữ thường sử dungcác thẻ HTML nhưng cũng có thể được tìm thấy như một phần nội dung của mãJavaScript Ở giai đoạn này, điều cơ bản là phải hiểu đầu vào có được lưu trữ hay không

và cách nó được định vi trong context của trang Khác với reflected XSS, quá trình kiểm

thử xâm nhập cũng nên điều tra bất kỳ kênh ngoài băng tần nào mà ứng dụng nhận và lưutrữ thông tin nhập của người dùng.

Giai đoạn 3 — Kiểm tra Stored XSS: Liên quan đến việc kiểm tra xác nhận đầu vào vàkiểm soát lọc ứng dụng Ngoài ra, nếu ứng dụng cho phép upload file, điều quan trọng làphải kiểm tra xem có thể tải lên nội dung HTML hay không Người kiểm thử cũng cầnxác minh xem file tải lên có cho phép đặt các kiểu MIME (Multipurpose Internet MailExtensions) tùy ý hay không.

Kiểm thử hộp xám tương tự như hộp đen Tuy nhiên người keiemr thử có một phầnkiến thức về ứng dụng Tùy thuộc vào thông tin sẵn có, thông thường người kiểm thử nênkiểm tra cách ứng dụng xử lý thông tin nhập của người dùng và sau đó lưu vào hệ thống

Khuyến nghị thực hiện các bước sau:

- Su dụng giao điện người dùng và nhập đầu vào với các ký tự đặc biệt/không hợp lệ

- Phan tích các phản hồi của ứng dụng

- _ Xác định sự hiện diện của các kiểm tra xác thực đầu vào

- Truy cập vào hệ thống back-end và kiểm tra xem đầu vào có được lưu trữ hay

không và lưu trữ như thé nao

Phân tích mã nguồn và hiểu cách ứng dụng hiển thị đầu vào được lưu trữ Nếu mã

nguồn có sẵn như kiểm thử hộp trang, tat cả các biến được sử dụng trong các biểu mẫu

đầu vào phải được phân tích Đặc biệt, các ngôn ngữ lập trình như PHP, ASP và

JavaScript sử dùn các biến/hàm được xác định trước dé lưu trữ đầu vào từ các yêu cầu

HTTP, GET và POST Bang sau tom tắt một số biến và hàm đặc biệt cần xem xét khiphân tích mã nguồn:

Bảng 2.3: Các biên can xem xét khi phân tích mã nguồn của các ngôn ngữ

Lê Thị Linh - B19DCAT111 27

Trang 38

Đồ án tốt nghiệp đại học Chương 2

PHP ASP JSP

$ GET - HTTP GET variables Request QueryString - doGet, doPost serviets - HTTP

HTTP GET GET and POST

$ POST - HTTP POST variables Request Form- HTTP request getParameter - HTTP

~ POST GET/POST variables

$ REQUEST — HTTP POST, GET Server.CreateObject

-and COOKIE variables used to upload files

$_FILES - HTTP File Upload

variables

2.3.2.3 DOM-based XSS

Mô ta 16 hongDOM, hay Document Object Model, là một định dạng cau tric duoc str dung dé dai

diện cho tai liệu trong trình duyệt DOM cho phép các kịch bản động như JavaScript tham chiếu đến các phan tử của tài liệu như các trường biéu mẫu hoặc cookie phiên DOM cũng được sử dụng bởi trình duyệt dé bảo mật — vi du, dé hạn chế các kịch bản trên các miền khác nhau khỏi việc lấy cookie phiên của miền khác Một lỗ hổng DOM-based XSS có

thể xảy ra khi nội dung thực, như một hàm JavaScript, được sửa đôi thông qua một yêu

cầu được tạo đặc biệt dé điều khiến một phan tử DOM bởi một kẻ tan công.

Lỗ hỗng DOM-based XSS có thể xảy ra khi nội dung đang hoạt động, chang hạn như

hàm JavaScript được sửa đổi bởi một yêu cầu được tạo thủ công đặc biệt dé một phần tử DOM có thé bị kẻ tan công kiểm soát.

Mục tiêu kiểm thử

- _ Xác định DOM sink

- _ Xây dung payload phù hợp với mọi loại sink

Kỹ thuật kiểm thửCác ứng dụng JavaScript khác biệt đáng kể so với các loại ứng dụng khác vì chúng

thường được tạo động bởi máy chu Dé hiểu mã nào đang được thực thi, trang web dang

được kiểm tra cần được thu thập thông tin dé xác định tat cả các trường hợp JavaScriptđang được thực thi và nơi chấp nhận đầu vào của người dùng Nhiều trang web dựa vào

các thư viện chức năng lớn, thường trải dài hàng trăm nghìn dòng mã và chưa được phát

triển nội bộ Trong những trường hợp này, kiểm tra từ trên xuống thường trở thành lựachọn khả thi duy nhất, vì nhiều chức năng cấp dưới không bao giờ được sử dụng và việcphân tích chúng để xác định đâu là phần chìm sẽ sử dụng nhiều thời gian hơn bình

thường Điều tương tự cũng có thê được nói đối với kiểm tra từ trên xuống nếu các đầu vào hoặc thiếu chúng không được xác định đề bắt đầu.

Lê Thị Linh - B19DCAT111 28

Trang 39

Đồ án tốt nghiệp đại học Chương 2

Đầu vào của người dùng có hai dạng chính:

- Pau vào được máy chủ ghi vào trang theo cách không cho phép XSS trực tiếp

- Bau vào thu được từ các đối tượng JavaScript phía máy khách

Thử nghiệm tự động chỉ đạt được thành công rất hạn chế trong việc xác định và xácthực XSS dựa trên DOM vì nó thường xác định XSS bằng cách gửi một trọng tải cụ thê

và cô gắng quan sát nó trong phản hồi của máy chu

2.3.3 File Upload

2.3.3.1 Mô tả lỗ hồng

Lỗ hồng file upload là khi máy chủ web cho phép người dùng tải tệp lên hệ thống tệp

của nó mà không xác thực đầy đủ những thứ như tên, loại, nội dung hoặc kích thước của

chúng Việc không thực thi đúng các hạn chế đối với những điều này có thê có nghĩa làngay cả chức năng tải lên hình ảnh cơ bản cũng có thé được sử dụng dé tải lên các tệp tùy

ý và có khả năng gây nguy hiểm Điều này thậm chí có thé bao gồm các tệp tập lệnh phía

máy chủ cho phép thực thi mã từ xa.

Tác động của lỗ hồng file upload phụ thuộc vào hai yếu tố chính:

- Khia cạnh nào của tệp ma trang web không xác thực đúng cách: kích thước, loại,

nội dung.

- _ Những hạn chế nào được áp dụng cho tệp sau khi tải tệp lên thành công

Trong trường hợp xấu nhất, loại tệp không được xác thực đúng cách và cau hình máychủ cho phép một số loại tệp nhất định (chang hạn như php va jsp) được thực thi dướidang mã Trong trường hợp này, kẻ tan công có khả năng có thé tải lên tệp mã máy chủ cóchức năng như shell web, cấp cho chúng toàn quyền kiểm soát may chủ một cách hiệuquả

2.3.3.2 Muc tiéu kiém the

- Xem lại tài liệu dự án đê biét các loại tệp bị hệ thong từ choi.

- Xác minh rằng các loại tệp không được chấp nhận sẽ bị từ chối và xử lý một cách

an toản.

- _ Xác minh rằng quá trình tải lên hàng loạt tệp là an toàn và không cho phép bat kỳ

hành vi nào chống lại các biện pháp bảo mật đã đặt

2.3.3.3 Kỹ thuật kiếm thử

- _ Nghiên cứu các yêu câu logic của ứng dụng.

- Chuan bị một thư viện các tệp không được chấp nhận để tải, ví dụ như: tép jsp, exe

hoặc HTML có chứa tập lệnh.

- _ Trong ứng dụng, điều hướng đến cơ chế gửi hoặc tải lên tệp

- _ Thử tải tệp không được chấp nhận lên và xác minh rang chúng đã bi chặn

- _ Kiểm tra xem trang web chỉ thực hiện kiểm tra loại tệp trong JavaScript phía may

khách hay không

Lê Thị Linh - B19DCAT111 29

Ngày đăng: 08/03/2024, 17:09

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w