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

Luận văn tốt nghiệpmột số vấn đề bảo mật ứng dụng web

45 1 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

Định dạng
Số trang 45
Dung lượng 1,93 MB

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

Nội dung

TÓM TẮT NỘI DUNG Trong khóa luận này, tác giả sẽ trình bày về ứng dụng web, các vấn đề về bảo mật trong ứng dụng web, khóa luận tập trung vào một số kỹ thuật tấn công vào ứng dụng web, t

Trang 2

LỜI CẢM ƠN

Sau gần 4 tháng nỗ lực thực hiện, luận văn nghiên cứu “Các kĩ thuật tấn công và bảo mật ứng dụng Web trên Internet” đã hoàn thành Ngoài sự cố gắng hết mình của bản thân, em đã nhận được sự khích lệ rất nhiều từ phía nhà trường, thầy cô, gia đình

Trang 3

TÓM TẮT NỘI DUNG

Trong khóa luận này, tác giả sẽ trình bày về ứng dụng web, các vấn đề về bảo mật trong ứng dụng web, khóa luận tập trung vào một số kỹ thuật tấn công vào ứng dụng web, tác hại và cách phòng chống

Phần mở đầu của khoá luận là tổng quan ứng dụng web, cách hoạt động của ứng dụng web và giới thiệu về bảo mật ứng dụng web Đây là cơ sở để tìm hiểu các vấn đề bảo mật trên ứng dụng web

Phần thứ hai của khoá luận dành để trình bày các dạng lỗ hổng của ứng dụng web và các kỹ thuật tấn công dựa trên những lỗ hổng đó

Phần thứ ba của khoá luận dành để trình bày về vài tấn công ứng dụng web dựa trên lý thuyết đã trình bày ở các phần trước

Phần thứ tư có nhiệm vụ trình bầy các kết quả đạt được của luận văn, những hạn chế và phát triển trong tương lai

Trang 4

MỤC LỤC

LỜI CẢM ƠN 1

TÓM TẮT NỘI DUNG 3

BẢNG CÁC THUẬT NGỮ VIẾT TẮT 5

BẢNG CÁC THUẬT NGỮ 6

DANH MỤC CÁC HÌNH VẼ BẢNG BIỂU 7

MỞ ĐẦU 8

CHƯƠNG 1 GIỚI THIỆU VỀ BẢO MẬT ỨNG DỤNG WEB 10

1.1 Giới thiệu về ứng dụng web 10

1.1.1. Khái niệm ứng dụng web 10

1.1.2. Mô tả hoạt động của một ứng dụng web 10

1.2 Bảo mật ứng dụng web 12

1.2.1. Giới thiệu về bảo mật ứng dụng web 12

1.2.2. Các vấn đề chính của bảo mật ứng dụng web 13

CHƯƠNG 2 MỘT SỐ TẤN CÔNG ỨNG DỤNG WEB VÀ CÁCH PHÒNG CHỐNG 14 2.1 Các kỹ thuật tấn công cơ bản 14

2.1.1. Lập bản đồ trang 14

2.1.2. Đoán tập tin và thư mục 15

2.1.3. Khai thác khi biết những luồng bảo mật 15

2.1.4. Vượt qua hạn chế trên các lựa chọn đầu vào 15

2.2 Tấn công dựa vào trạng thái trang 16

2.2.1. Giới thiệu 16

2.2.2. Tấn công vào trường ẩn 16

2.2.2.1. Kỹ thuật tấn công vào trường ẩn 16

2.2.2.2. Cách phòng chống 17

2.2.3. Tấn công dựa vào tham số CGI 17

2.2.3.1. Kỹ thuật tấn công vào tham số CGI 18

2.2.3.2. Cách phòng chống 18

2.2.4. Nhiêm độc cookie 18

2.2.4.1. Kỹ thuật tấn công nhiễm độc cookie 18

2.2.4.2. Cách phòng chống 19

2.2.5. Tấn công bằng nhảy URL 19

2.2.5.1. Kỹ thuật tấn công nhảy URL 19

2.2.5.2. Cách phòng chống 19

Trang 5

2.2.6 Chiếm hữu phiên làm việc (Session hijacking) 19

2.2.6.1 Kỹ thuật tấn công chiếm hữu phiên làm việc 20

2.2.6.2 Các cách phòng chống tấn công chiếm hữu phiên làm việc 22

2.3 Tấn công chèn mã lệnh thực thi trên trình duyệt nạn nhân (cross-site scripting) – XSS 22

2.3.1 Giới thiệu về cross-site scripting 22

2.3.2 Kỹ thuật tấn công XSS 23

2.3.3 Mã kịch bản tấn công XSS 24

2.3.3.1 Ăn cắp mã phiên làm việc của người dùng để thực hiện chiếm hữu phiên làm việc, 24

ví dụ mã sau: 24

2.3.3.2 Tạo thủ thuật để khiến người dùng làm việc không biết đến 24

2.3.3.3 Các cách chèn mã có thể 24

2.3.4 Các cách phòng chống 26

2.3.5 Một số trang vẫn còn lỗ hổng của Việt Nam: 27

2.4 Tấn công bằng kỹ thuật chèn mã SQL (SQL Injection) 27

2.4.1 Giới thiệu về SQL Injection 27

2.4.2 Các dạng tấn công SQL Injection 29

2.4.2.1 Dạng tấn công vượt qua trang đăng nhập 29

2.4.2.2 Tấn công dựa vào câu lệnh SELECT 30

2.4.2.3 Tấn công dựa vào câu lệnh kết hợp UNION 30

2.4.2.4 Tấn công dựa vào câu lệnh INSERT 33

2.4.2.5 Tấn công dựa vào STORED PROCEDURE 33

2.4.3 Cách phòng chống 33

CHƯƠNG 3 TẤN CÔNG THỰC NGHIỆM 35

3.1 URL Jumping 35

3.2 Lỗi XSS 36

3.3 SQL Injection 37

3.3.1 Trang thứ nhất 37

3.3.2 Trang thứ hai 39

3.3.3 Trang thứ ba 40

CHƯƠNG 4 KẾT LUẬN 42

4.1 Kết quả đạt được 42

4.2 Định hướng phát triển 42

LỜI KẾT 43

TÀI LIỆU THAM KHẢO 44

Trang 6

BẢNG CÁC THUẬT NGỮ VIẾT TẮT

HTML HyperText Markup Language−Ngôn ngữ đánh dấu siêu văn bản HTTP HyperText Transfer Protocol−giao thức truyền siêu văn bản URL Uniform Resource Locator−địa chỉ tham chiếu tài nguyên trên Internet

SSL Secure socket layer−Giao thức truyền thông tin an toàn qua mạng

ID Identification−Định danh

Trang 7

Máy chủ ứng dụng web

Database Server Máy chủ cơ sở dữ liệu Popup Cửa sổ của trình duyệt web được mở ra ngoài, khác với cửa sổ

đang làm việc

Attacker Kẻ tấn công ứng dụng web Hacker Kẻ tấn công ứng dụng web Cookie Dữ liệu lưu trạng thái trang web của người dùng Admin Người quản trị của ứng dụng web

Password Mật khẩu đăng nhập ứng dụng web

Firewall Tường lửa bảo vệ hệ thống mạng

Form Mẫu biểu trong HTML

Session hijacking

Tấn công chiếm hữu phiên làm việc Session fixation Tấn công ấn định phiên làm việc

Trang 8

DANH MỤC CÁC HÌNH VẼ BẢNG BIỂU

Hình 1-1 mô tả hoạt động của ứng dụng web

(http://www.windowsecurity.com/articles/Web-Applications.html) 10

Hình 2-1 Sơ đồ trang của trang web qbssoftware (http://www.qbssoftware.comnews.aspxlink=4653) 14

Hình 2-2 Dạng cookie của Internet Explorer .18

Hình 2-3 Thứ tự các trang trong ứng dụng thanh toán trực tuyến 19

Hình 2-4 SessionID được lưu trong tham số CGI 20

Hình 2-5 Ăn cắp SessionID bằng cách giám sát đường truyền (nguồn: http://www.owasp.org/index.php/Session_hijacking_attack ) 20

Hình 2-6 Tấn công ấn định phiên làm việc .21

Hình 2-7 các bước tấn công ấn định phiên làm việc .22

Hình 2-8 Hacker thực hiện một cuộc tấn công thành công vào ứng dụng web (nguồn: http://www.windowsecurity.com/articles/Web-Applications.html) 28

Hình 3-1 trang đăng nhập của admin của trang http://www.kalptarudemos.com/demo/million/ 35

Hình 3-2 Trang quản lý của admin của trang http://www.kalptarudemos.com/demo/million/ 36

Hình 3-3 Chèn mã kịch bản vào trang web 36

Hình 3-4 Trang bị dính lỗi XSS .37

Hình 3-5 trang đăng nhập của admin của trang http://www.officetoweb.co.uk/demo/admin/login.asp 38

Hình 3-6 Hình ảnh sau khi đã đăng nhập http://www.officetoweb.co.uk/demo/admin/login.asp 38

Hình 3-7 Trang đăng nhập của admin của trang http://www.zoomyrshop.com/demo/admin/companyAdmin/Admin_home.asp 39

Hình 3-8 Hình ảnh sau khi đăng nhập của trang : http://www.zoomyrshop.com/demo/admin/companyAdmin/Admin_home.asp 40

Hình 3-9 Trang đăng nhập của admin trang http://www.evolvingmedia.com/demo/admin/ 41

Hình 3-10: Hình ảnh sau khi đăng nhập của trang http://www.evolvingmedia.com/demo/admin/ 41

Trang 9

Cùng với sự phát triển của Internet và các dịch vụ trên Internet, số lượng các vụ tấn công trên Internet cũng tăng với tốc độ chóng mặt Theo tập đoàn Symantec số lượng các vụ tấn công bằng mã độc trên Internet năm 2003 là 18.827 vụ, năm 2004 là 69.107 vụ, năm 2007 là 624.267 vụ và đến năm 2008 là 1.656.227 vụ Riêng trong năm 2008 ghi nhận 5.147 chủng loại mã độc chuyên chiếm quyền kiểm soát máy chủ

http://eval.symantec.com/mktginfo/enterprise/white_papers/b-whitepaper_internet_security_threat_report_xiv_04-2009.en-us.pdf)

Không chỉ số lượng các cuộc tấn công tăng lên nhanh chóng mà các phương pháp tấn công cũng ngày càng tinh vi và có tổ chức Những cuộc tấn công thời kỳ đầu chủ yếu là đoán tên người sử dụng/mật khẩu (Username/password) hoặc sử dụng một số lỗi của các chương trình và hệ điều hành (security hole) làm vô hiệu hóa hệ thống bảo

vệ, tuy nhiên các cuộc tấn công gần đây còn bao gồm cả các thao tác như giả mạo địa chỉ IP, theo dõi thông tin truyền qua mạng, chiếm các phiên làm việc từ xa (telnet hoặc rlogin), cài đặt trojan hay worm để chiếm quyền kiểm soát máy tính, ăn cắp, lợi dụng các thông tin của người dùng về ngân hàng, giao dịch chứng khoán để ăn cắp tiền của họ…Vì thế nhu cầu bảo vệ thông tin trên Internet là cần thiết nhằm bảo vệ dữ liệu, bảo

vệ thông tin người dùng và bảo vệ hệ thống

Đã có những công cụ tự động tìm lỗ hổng để giúp đỡ những nhà phát triển ứng dụng web Tuy nhiên do nhiều nguyên nhân vẫn có những lỗ hổng tồn tại làm cơ sở để tấn công, có thể là do các nhà phát triển ứng dụng không tuân thủ các yêu cầu về bảo mật trong quá trình xây dựng ứng dụng, có thể do cuộc tấn công là hoàn toàn mới và tinh vi đối với những nhà phát triển và nhà quản trị hệ thống

Trang 10

Luận văn được thực hiện với mục đích tìm hiểu, phân tích các lỗ hổng bảo mật từ

đơn giản đến phức tạp trong các ứng dụng web và các phương án phòng chống các

cuộc tấn công

Nội dung khóa luận sẽ bao gồm các phần sau (bốn chương):

• Chương 1: Tìm hiểu chung về ứng dụng web, khái niệm và hoạt động của

ứng dụng web trên Internet Đồng thời cũng đề cập khái quát về bảo mật ứng dụng web

• Chương 2: Trình bầy về các kỹ thuật tấn công vào ứng dụng web và cách

phòng chống

(XSS)

o Kỹ thuật tấn công chèn câu truy vấn SQL (SQL injection) và cách phòng chống

• Chương 3: Một vài ví dụ tấn công ứng dụng web bằng các kỹ thuật ở trình

bầy các chương trước

• Chương 4: Trình bầy kết quả đạt được của luận văn và hướng phát triển

trong tương lai

Trang 11

Chương 1 GIỚI THIỆU VỀ BẢO MẬT ỨNG DỤNG

WEB

1.1 Giới thiệu về ứng dụng web

1.1.1 Khái niệm ứng dụng web

Ứng dụng web là một ứng dụng khách/chủ truy cập qua mạng Internet hay intranet sử dụng giao thức HTTP/s để tương tác với người dùng hay hệ thống khác

Trình khách dành cho người sử dụng là một phần mềm phổ biến và chung cho các ứng dụng web chính là trình duyệt web như Internet Explorer, Nescape Navigator

Ứng dụng web rất phổ biến bởi sự cập nhật và duy trì mà không cần phần mềm phân phối, cài đặt tại hàng nghìn máy tính của người sử dụng Các ứng dụng web phổ biến hiện nay là: webmail, bán hàng trực tuyến, giao dich, đấu giá trực tuyến, wiki, diễn đàn thảo luận và nhiều chức năng khác

Trước đây ứng dụng web được xây dựng trên mô hình tập trung, một trình chủ chạy trên một máy chủ và kết nối vào cơ sở dữ liệu ngay trên máy chủ Hiện nay các ứng dụng web được xây dựng theo mô hình phân tán, nhiều máy chủ đáp ứng yêu cầu

và kết nối tới nhiều nguồn cơ sở dữ liệu tại Trình chủ được viết bằng các ngôn ngữ như: PHP, ASP, ASP.NET, JSP…

1.1.2 Mô tả hoạt động của một ứng dụng web

Hoạt động của ứng dụng web được biểu diễn như hình sau:

(http://www.windowsecurity.com/articles/Web-Applications.html)

Trang 12

Một ứng dụng web bao gồm hai phía: Client và Server

• Phía Client: là trình duyệt web

• Phía Server: bao gồm hai lớp trong kiến trúc ứng dụng web, lớp logic (Web Server, Web Application Server) và lớp dữ liệu (Database Server)

Bên cạnh đó tường lửa được sử dụng để chống lại sự truy cập trái phép, bảo vệ các nguồn thông tin mội bộ cũng như hạn chế sự xâm nhập vào hệ thống của một số thông tin khác không mong muốn

Chức năng chính của Firewall là:

• Cho phép hoặc cấm những dịch vụ truy xuất ra ngoài

• Cho phép hoặc cấm những dịch vụ từ bên ngoài truy nhập vào trong

• Kiểm soát địa chỉ truy nhập, cấm địa chỉ truy nhập

Đầu tiên trình duyệt sẽ gửi một yêu cầu (request) đến Web Server thông qua các lệnh cơ bản GET, POST… của giao thức HTTP/s, Web Server lúc này có thể cho thực thi một chương trình được xây dựng từ nhiều ngôn ngữ như Perl, C/C++… hoặc Web Server yêu cầu bộ diễn dịch thực thi các trang ASP, JSP… theo yêu cầu của trình duyệt

Tùy theo các tác vụ của chương trình được cài đặt mà nó xử lý, tính toán, kết nối đến cơ sở dữ liệu, lưu các thông tin do trình duyệt gửi đến…và từ đó trả về cho trình duyệt một luồng dữ liệu có định dạng theo giao thức HTTP, nó gồm 2 phần:

• Header mô tả các thông tin về gói dữ liệu và các thuộc tính, trạng thái trao đổi giữa trình duyệt và WebServer

• Body là phần nội dung dữ liệu mà Server gửi về Client, nó có thể là một file HTML, một hình ảnh, một đoạn phim hay một văn bản bất kì

Theo mô hình ở hình 1−1, với firewall, luồng thông tin giữa trình duyệt và Web Server là luồng thông tin hợp lệ Vì thế, nếu hacker tìm thấy vài lỗ hổng trong ứng dụng Web thì firewall không còn hữu dụng trong việc ngăn chặn hacker này Do đó, các kĩ thuật tấn công vào một hệ thống mạng ngày nay đang dần tập trung vào những

sơ suất (hay lỗ hổng) trong quá trình tạo ứng dụng của những nhà phát triển Web hơn

là tấn công trực tiếp vào hệ thống mạng, hệ điều hành Tuy nhiên, hacker cũng có thể lợi dụng các lỗ hổng Web để mở rộng sự tấn công của mình vào các hệ thống không

Trang 13

liên quan khác

1.2 Bảo mật ứng dụng web

1.2.1 Giới thiệu về bảo mật ứng dụng web

Bảo mật ứng dụng web cũng tương tự như bảo mật các ứng dụng chung khác

Sự khác nhau lớn giữa ứng dụng client-server cũ và ứng dụng web

• Hệ thống client-server trước đây chỉ hoạt động trên mạng riêng, tin cậy

• Ứng dụng web bây giờ được thiết kể để hoạt động trên Internet – một môi trường

không tin cậy

• Một vài đặc điểm khác khiến ứng dụng web trở nên đặc biệt:

o Nhiều tổ chức vẫn không thực hiện những dự án tạo ứng dụng web như các

dự án phát triển

khu không có sự kiểm soát đằng sau tường lửa của tổ chức làm cho chúng trở thành mục tiêu quan trọng

trang web

o Dự án ứng dụng web có vòng đời phát triển ngắn và luôn có lý do làm cho chúng phát triển nhanh hơn

việc của người dùng phải được giữ lại ở đâu đó, có thể nơi đó sẽ bị sự điều khiển của kẻ tấn công

Ứng dụng web là một trong các trường hợp của ứng dụng client-server trong đó vấn đề bảo mật làm giảm sự cân bằng của những mục tiêu khác

• Tính tin cậy của ứng dụng web đối lập với bảo mật vì rất khó để kiểm thử hoàn

toàn lỗi khi xử lý mã

• Hiệu suất cũng đi ngược với mục đích bảo mật vì các phương pháp truyền thống

để tăng hiệu suất trong ứng dụng client-server (chủ yếu là đẩy các chức năng về phía client) sẽ tạo ra những lỗ hổng mới

• Tiện ích là đối lập với bảo mật vì càng cung cấp nhiều thông tin cho người dùng

cũng là cung cấp manh mối cho những kẻ tấn công về cách làm việc, quản lý truy cập Các yêu cầu về xác thực thường làm cho hệ thống kém tiện dụng hơn khi sử dụng

Trang 14

• Khả năng kiểm thử cũng đối lập với bảo mật vì sử dụng các công cụ để kiểm thử

sẽ mở ra các cách truy cập vào hệ thống

1.2.2 Các vấn đề chính của bảo mật ứng dụng web

Một ứng dụng web thông thường bao gồm một trình chủ, một trình khách, và một mạng lưới

• Đối với các trình khách, các vấn đề an ninh chính là:

Web của client Điều này có nghĩa là tất cả các dữ liệu đến từ client phải được kiểm tra sự hợp lệ khi nó được nhận từ server

bắt nguồn từ client có thể bị đọc và giả mạo cùng với nó

o Các thông báo lỗi ở phía server phải bị ẩn với đối phương vì nó có thể được dùng để tìm hiểu về cấu trúc và cấu hình của máy chủ

ứng dụng web Trong chương tiếp theo, tác giả sẽ trình bầy một số kỹ thuật tấn công vào ứng dụng web và cách phòng chống

Trang 15

Chương 2 MỘT SỐ TẤN CÔNG ỨNG DỤNG WEB VÀ

CÁCH PHÒNG CHỐNG

2.1 Các kỹ thuật tấn công cơ bản

2.1.1 Lập bản đồ trang

Những kẻ tấn công có thể làm một số việc sau:

• Sử dụng một chương trình thu thập đi theo các liên kết trong ứng dụng và chỉ ra luồng di chuyển theo các trang của ứng dụng và cơ chế xác thực

• Đọc ghi chú trong các tài liệu gửi đến trình duyệt để có được sự gợi ý về logic trong kinh doanh hay các thuật toán

• Tìm tên người dùng, mật khẩu, và tên cơ sở dữ liệu trong các các tài liệu gửi cho khách hàng

• Tìm các truy vấn SQL để có manh mối về cấu trúc cơ sở dữ liệu và cách truy vấn được xây dựng từ dữ liệu động

• Xác định vị trí trường ẩn trong form

• Tìm ra giá trị của các tham số chuyển giữa các trang web

• Tạo ra các trường hợp lỗi khác nhau để xem máy chủ trả lời Một ví dụ là, nếu kiểm tra máy chủ khác nhau đưa ra một thông báo lỗi cho một không đúng tên người dùng so với sai mật khẩu

(http://www.qbssoftware.comnews.aspxlink=4653)

Trang 16

Một số đề phòng lập bản đồ trang

• Tránh đưa ra các thông tin về các truy vấn SQL

• Không gắn kèm các ghi chú trong mã gửi đến khách hàng

• Không đặt tên người dùng, mật khẩu, cơ sở dữ liệu vào chuỗi kết nối, trong mã

và thông báo lỗi

2.1.2 Đoán tập tin và thư mục

Một kỹ thuật đơn giản khác là đoán tập tin và thư mục Những kẻ tấn công sẽ đoán những tệp và thư mục chứa thông tin quan trọng và cố gắng truy cập vào đó để lấy thông tin

• Tệp tin như config.inc, web.xml, và server.xml có thể chứa thông tin kết nối

cơ sở dữ liệu

• Tập tin Htpasswd có thể chứa thông tin tên người dùng và mật khẩu của họ

• Thư mục như template/ có thể chứa các tệp tin với thông tin về các ứng dụng

biệt như WEB-INF/

2.1.3 Khai thác khi biết những luồng bảo mật

Để giảm thiểu rủi ro, xác định các thành phần của bên thứ ba trong hệ thống của bạn, kiểm tra nó và ưu tiên cho việc sửa lỗi bảo mật

2.1.4 Vượt qua hạn chế trên các lựa chọn đầu vào

Một lớp tấn công khác là vượt qua hạn chế trên lựa chọn đầu vào

Trang 17

• Thông tin người dùng nhập vào thường bị hạn chế theo những phạm vi để dễ kiểm soát

• Để cải thiện kinh nghiệm người sử dụng, mã của phía client sẽ thực hiện việc xác nhận dữ liệu của người dùng

• Các ứng dụng được viết một cách đơn giản tin tưởng các giá trị được gửi lên sẽ nằm trong phạm vi mong đợi

• Bởi vượt qua được giao diện người dùng, những kẻ tấn công có thể gán các giá trị tùy ý cho biến đầu vào của người dùng

Để giảm thiểu rủi ro, xác nhận tính hợp lệ tất cả các dữ liệu đến từ client

2.2 Tấn công dựa vào trạng thái trang

Trạng thái của phiên làm việc sẽ được lưu theo ba cách sau:

• Trường ẩn trong form

• Tham số CGI (cả trong phương thức GET và POST)

• Cookies

2.2.2 Tấn công vào trường ẩn

2.2.2.1 Kỹ thuật tấn công vào trường ẩn

Ta có một form gồm cả trường ẩn như sau:

Nếu không có thay đổi gì sẽ gửi đến máy chủ nội dung là:

Trang 18

Nếu hacker thay đổi giá trị của biến “giaca”

Thì yêu cầu sẽ thay đổi thành:

Và giá trị gửi lên server đã là giá trị bị thay đổi

2.2.2.2 Cách phòng chống

• Đặt cho trường ẩn một cái tên khó hiểu

• Sử dụng các giá trị được băm hay mã hóa

• Nếu có thể thì không sử dụng trường ẩn

• Kiểm tra giá trị của chúng khi đến server

2.2.3 Tấn công dựa vào tham số CGI

Tham số CGI có thể nhìn thấy ở cuối của URL trong yêu cầu GET đằng sau dấu

“ ? ”, mỗi tham số là một cặp gồm tên-giá trị phân cách nhau bằng dấu “=”, các tham

thấy ở phần chính của yêu cầu

Aq f

Oq

Trang 19

2.2.3.1 Kỹ thuật tấn công vào tham số CGI

Ta có thể tìm tham số bằng hiển thị mã hoặc nhìn trên URL Chỉnh sửa URL một cách thủ công bằng cách thay đổi giá trị của tham số hoặc

thêm vào các tham số khác

Ví dụ: nếu ứng dụng web cho phép người dùng thay đổi mật khẩu và trang thay đổi có URL truyền đi như sau:

http://www.foo.com/script.php?user=mike&newpasswd=guessWho Trong URL trên có hai tham số :

Trong ví dụ này ta thay đổi tham số newpaswd có giá trị là guessWho thành bigDummy

2.2.3.2 Cách phòng chống

• Xử lý tham số như xử lý phần người dùng nhập vào

• Kiểm tra giá trị của chúng khi gửi lên server

Cookie có thể được thay đổi dễ dàng trong file text

Hình 2-2 Dạng cookie của Internet Explorer

2.2.4.1 Kỹ thuật tấn công nhiễm độc cookie

Hacker sẽ thay đổi những giá trị các trường trong cookie như là:

• Thay đổi thời hạn của cookie

Trang 20

• Thay đổi các dữ liệu xác thực

• Thay đổi thông tin giỏ hàng

2.2.4.2 Cách phòng chống

Ta sẽ dùng một số cách sau để chống lại tấn công nhiễm độc cookies

• Không sử dụng cookie để lưu những dữ liệu xác thực

• Mã hóa các dữ liệu quan trọng

• Xử lý cookie như một trường dữ liệu do người dùng nhập vào

• Mã hóa tất cả thông tin của cookie

2.2.5 Tấn công bằng nhảy URL

2.2.5.1 Kỹ thuật tấn công nhảy URL

Người dùng gõ vào một URL và nhảy tới trang đó, không tuân theo thứ tự các trang thông thường của ứng dụng

Ví dụ: Người dùng có thể truy cập mà không cần đăng nhập

Người dùng có thể mua hàng mà không cần trả tiền

2.2.5.2 Cách phòng chống

• Hạn chế truy cập vào tất cả các URL không dành cho người sử dụng như những trang dành cho admin

• Khóa sự truy cập vào những nơi không phải là trang web

• Sử dụng thêm cookie, trường ẩn để chặn truy cập vào các trang không đúng trình tự

2.2.6 Chiếm hữu phiên làm việc (Session hijacking)

Ứng dụng web lưu trạng thái mỗi phiên làm việc của người dùng bằng mã phiên làm việc (session ID) Server sẽ cung cấp mỗi session ID khác nhau cho mỗi người dùng khác nhau để chứng thực phiên làm việc đó

Để duy trì phiên làm việc, SessionID thường được lưu vào:

• Tham số CGI

• Trường ẩn trong form

Trang 21

• Các cookie Thông thường, sau khi người dùng được chứng thực dựa trên những thông tin cá nhân như tên/mật khẩu, session ID được xem như một mật khẩu tĩnh tạm thời cho những lần yêu cầu tiếp theo Điều này đã khiến cho Session ID là mục tiêu lớn cho những hacker Trong nhiều trường hợp, hacker giành được session ID hợp lệ của người dùng để từ đó đột nhập vào phiên làm việc của họ

2.2.6.1 Kỹ thuật tấn công chiếm hữu phiên làm việc

Những kẻ tấn công có thể thực hiện những cách sau:

• Đoán mã của một phiên làm việc hợp lệ

• Ăn cắp một mã phiên qua các mạng lưới giám sát

http://www.owasp.org/index.php/Session_hijacking_attack )

Trang 22

• Ăn cắp một mã phiên thông qua XSS Hacker sẽ sử dụng đoạn mã trên trình duyệt của nạn nhân và gửi kết quả về máy của mình

• Ấn định phiên làm việc (Session fixation) Trong tấn công ấn định phiên làm việc, kẻ tấn công ấn định sẵn SessionID cho nạn nhân trước khi họ đăng nhập vào hệ thống Sau đó kẻ tấn công sẽ sử dụng SessionID này để tiếp tục phiên làm việc của nạn nhân

Tấn công ấn định phiên làm việc gồm ba bước:

Bước 1: Tạo ra phiên làm việc:

Đầu tiên kẻ tấn công tạo ra một phiên làm việc “bẫy” theo hướng của hệ thống

Có hai hướng có thể:

• Hướng tự do: chấp nhận bất kỳ một session ID nào, nếu chưa tồn tại session thì tạo mới một session ID

• Hướng giới hạn: chỉ chấp nhận một session ID đã đăng ký trước đó

Với hệ thống hướng tự do thì hacker chỉ cần thiết lập một session ID bất kỳ, nhớ

và sau đó sử dụng lại session ID này Ở hướng giới hạn, hacker phải đăng ký một session ID với ứng dụng

Bước 2: Ấn định phiên làm việc:

Tiếp theo kẻ tấn công phải giới thiệu session ID này tới trình duyệt của người dùng, có thể là gửi thư điện tử Như vậy là ấn định phiên làm việc của người đó

Ngày đăng: 01/11/2022, 15:56

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[3] State-Based Attacks http://www.cse.unt.edu/~srt/4560s2007/slides/11-StateBasedAttacks-6.pdf Sách, tạp chí
Tiêu đề: State-Based Attacks
Năm: 2007
[4] Matthew Dailey Web Application Engineering,Web Application Security http://www.cs.ait.ac.th/~mdailey/courseware/index.php?action=course&course_id=35&course_page=lecture_notes Sách, tạp chí
Tiêu đề: Web Application Engineering
Tác giả: Matthew Dailey
[1] Lê Đình Duy Tấn công kiểu SQL Injection – tác hại và phòng tránh. [2] State-Based Attackshttp://www.esu.edu/~mjochen/Teaching/CPSC328/09s/slides/07StateAttacks.pdf Link
[5] session_fixation http://www.acros.si/papers/session_fixation.pdf [6] Web-Application http://www.windowsecurity.com/articles/Web-Applications.html Link
[7] Cross-site scripting http://en.wikipedia.org/wiki/Cross-site_scripting Link

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