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 1HỌ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 2HỌ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