Tải bản đầy đủ (.pdf) (39 trang)

AN TOÀN MẠNG BÁO CÁO KẾT THÚC HỌC PHẦN Đề tài: “TÌM HIỂU CÔNG CỤ W3AF”

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.94 MB, 39 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THƠNG TIN

TÊN MƠN HỌC: AN TỒN MẠNG
BÁO CÁO KẾT THÚC HỌC PHẦN
Đề tài:
“TÌM HIỂU CƠNG CỤ W3AF”
Giảng viên hướng dẫn : TS. Đặng Minh Tuấn
Nhóm

: 01

Sinh viên thực hiện

: Nguyễn Văn Hiếu

Mã sinh viên

: B18DCAT088

Lớp

: D18CQAT04-B

Hà Nội, năm 2021


MỤC LỤC
MỞ ĐẦU ................................................................................................................................................ 1
DANH MỤC CÁC TỪ VIẾT TẮT ...................................................................................................... 2
DANH MỤC CÁC HÌNH VẼ .............................................................................................................. 3


CHƯƠNG 1: GIỚI THIỆU CÔNG CỤ W3AF TRÊN KALI LINUX............................................. 4
1.1 Giới thiệu công cụ W3AF ........................................................................................................... 4
1.2 Kiến trúc W3AF .......................................................................................................................... 4
1.3 Các plugin hỗ trợ w3af ............................................................................................................... 5
1.3.1 Các plugin chính ................................................................................................................... 5
1.3.2 Các plugin khác .................................................................................................................... 6
1.4 Cài đặt và cấu hình W3AF ......................................................................................................... 7
1.4.1 Cài đặt W3af trên Kali Linux ............................................................................................... 8
1.4.2 Cấu hình và sử dụng W3af ................................................................................................... 8
CHƯƠNG 2: TỔNG QUAN VỀ TẤN CÔNG LỖ HỔNG ỨNG DỤNG WEB ............................ 18
2.1 Tổng quan về ứng dụng web .................................................................................................... 18
2.1.1 Giới thiệu chung ................................................................................................................. 18
2.1.2 Cơ chế hoạt động của ứng dụng web ................................................................................. 18
2.2 Một số phương thức tấn công lỗ hổng bảo mật ứng dụng web ............................................. 19
2.2.1 Giới thiệu chung ................................................................................................................. 19
2.2.2 Các phương thức khai thác lỗ hổng bảo mật ứng dụng web ............................................ 20
2.3 Một số nguyên nhân gây ra các lỗ hổng bảo mật ứng dụng web .......................................... 23
2.3.1 Nguyên nhân do nền tảng xây dựng ứng dụng web .......................................................... 23
2.3.2 Nguyên nhân do hạn tầng cung cấp dịch vụ web .............................................................. 23
2.3.3 Nguyên nhân do người vận hành và sử dụng dịch vụ web ............................................... 24
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ ............................................................................. 25
3.1 Bài Lab 1:................................................................................................................................... 25
3.2 Bài Lab 2:................................................................................................................................... 29
3.3 Đánh giá ..................................................................................................................................... 34
KẾT LUẬN .......................................................................................................................................... 36
TÀI LIỆU THAM KHẢO .................................................................................................................. 37


MỞ ĐẦU
Vấn đề an toàn an ninh mạng hiện nay đang là vấn đề cấp bách, đặc biệt là

việc tấn công vào các Website. Việc tấn công vào hệ thống mạng trong ứng dụng
Web ngày càng gia tăng, cho thấy việc bảo mật an tồn thơng tin trên Website chưa
thực sự đảm bảo.
Theo thống kê của Trung tâm Ứng cứu khẩn cấp máy tính Việt Nam [13],
năm 2017 Trung tâm này đã ghi nhận tổng số 134.375 sự cố tấn cơng mạng của cả
3 loại hình Phishing (lừa đảo), Malware (mã độc) và Deface (thay đổi giao diện). So
với năm 2016, số lượng vụ tấn công mạng năm 2017 nhiều gấp hơn 4,2 lần (năm
2016 là 31.585), trong đó, loại hình tấn cơng Phishing là 10.057 sự cố (gấp hơn 1,7
lần so với năm 2016), Malware là 46.664 sự cố (gấp gần 2,8 lần năm 2016) và Deface
là 77.654 sự cố (gấp hơn 8,7 lần năm 2016). Mặt khác, theo khảo sát của Hiệp hội
an tồn thơng tin Việt Nam, chỉ số an tồn thơng tin của Việt Nam trong năm 2017
là 59,9%. Đây là bước tiến đáng kể trong những năm qua, bởi năm 2016, con số này
là 47,4%.
Do nhu cầu phát triển các dịch vụ thông tin trên mạng internet ngày càng lớn,
đòi hỏi các cơ quan, tổ chức và doanh nghiệp phải đảm bảo an toàn cho các website
của mình. Vì vậy, vấn đề nghiên cứu các giải pháp đánh giá phát hiện lỗ hổng là rất
cần thiết. Từ những lý do trên, em lựa chọn đề tài “TÌM HIỂU CƠNG CỤ W3AF”
và áp dụng cơng cụ trong phát hiện và phân tích lỗ hổng bảo mật trong ứng dụng
web cho báo cáo môn học. Bài báo cáo gồm 3 phần:
Chương 1: Giới thiệu công cụ W3AF trên Kali Linux
Chương 2: Tổng quan về tấn công lỗ hổng ứng dụng Web
Chương 3: Thực nghiệm và đánh giá cơng cụ
Do kiến thức cịn hạn hẹp và khả năng tìm hiểu cịn hạn chế nên khơng thể
tránh khỏi sai sót. Nếu có sai sót mong thầy góp ý để giúp bài báo cáo hoàn chỉnh
hơn. Em xin chân thành cảm ơn thầy. Chúc thầy thật nhiều sức khỏe!

1


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


STT

Từ viết tắt

1

CSDL

2

DBMS

Thuật ngữ Tiếng Anh

Ý nghĩa
Cơ sở dữ liệu

Database Management

Hệ quản trị cơ sở dữ liệu

System
3

4

DVWA

GUI


Damn Vulnerable Web

Ứng dụng Web mẫu đề sử dụng cho

Application

việc tấn công

Graphical User

Giao diện đồ họa người dùng

Interface
5

SQL

Structured Query

Ngôn ngữ truy vấn có cấu trúc

Language
6

SSL

Secure Sockets Layer

Tiêu chuẩn an ninh cơng nghệ tồn

cầu tạo ra một liên kết giữa máy chủ
web và trình duyệt

7

XSS

Cross-site scripting

Loại lỗ hổng bảo mật thường thấy
trong các ứng dụng web

2


DANH MỤC CÁC HÌNH VẼ
Hình 1. 1 Luồng thơng tin giữa các plugin ........................................................... 5
Hình 1. 2 Cài đặt w3af trên Kali Linux ................................................................ 8
Hình 1. 3 Lệnh help hỗ trợ cơng cụ ...................................................................... 9
Hình 1. 4 Cấu hình tùy chọn cài đặt...................................................................... 9
Hình 1. 5 Cấu hình set timeout của http-settings ................................................ 10
Hình 1. 6 Xem thơng tin chi tiết về tham số timeout .......................................... 10
Hình 1. 7 Thơng tin các plugin trong w3af_console .......................................... 11
Hình 1. 8 Liệt kê các plugin của audit ................................................................ 11
Hình 1. 9 Mơ tả chi tiết các plugin audit ............................................................ 12
Hình 1. 10 Mô tả chi tiết các plugin xss của audit .............................................. 12
Hình 1. 11 Kết nối plugin persistent_xss ............................................................ 13
Hình 1. 12 Lưu thơng tin profiles ....................................................................... 13
Hình 1. 13 Kết nối profile fast_scan ................................................................... 13
Hình 1. 14 Lưu cờ self-contained ....................................................................... 13

Hình 1. 15 Đặt mục tiêu URL phục vụ việc quét ............................................... 14
Hình 1. 16 Bắt đầu thực hiện qt ...................................................................... 14
Hình 1. 17 Tự động hóa sử dụng script .............................................................. 14
Hình 1. 18 Cấu hình thơng tin xác thực NTLM.................................................. 15
Hình 1. 19 Cài đặt HTTP Cookie........................................................................ 17
Hình 2. 1 Cơ chế hoạt động của ứng dụng web .................................................. 18
Hình 3. 1 DVWA trên windows ......................................................................... 25
Hình 3. 2 Kết nối Kali linux với Windows ......................................................... 26
Hình 3. 3 Kết nối Kali Linux với DVWA .......................................................... 26
Hình 3. 4 Khởi động W3af.................................................................................. 27
Hình 3. 5 Gắn trang web và cài plugins .............................................................. 28
Hình 3. 6 Rà quét và kết quả ............................................................................... 28
Hình 3. 7 Kết quả trang web thực ....................................................................... 34

3


CHƯƠNG 1: GIỚI THIỆU CÔNG CỤ W3AF
TRÊN KALI LINUX
Nội dung của chương 1 sẽ giới thiệu công cụ W3AF, kiến trúc chính các
plugin của cơng cụ, cài đặt cơng cụ và cách cấu hình sử dụng các plugin.

1.1 Giới thiệu công cụ W3AF
W3af (Web Application Attack and Audit Framework) là một công cụ quét
mã nguồn mở hỗ trợ kiểm thử bảo mật cho các ứng dụng web. W3af được viết bằng
ngơn ngữ Python và có sẵn cho nhiều hệ điều hành phổ biến khác như Microsoft
Windows, Linux, Mac OS X, FreeBSD và OpenBSD. Công cụ quét này hỗ trợ giao
diện đồ họa người dùng hoặc dưới dạng cửa sổ dòng lệnh.
w3af được phát triển đầu tiên bởi Andres Riancho vào tháng 3 năm 2007, sau
đó được hỗ trợ phát triển bởi cộng đồng. Vào tháng 7/2010, w3af thông báo về việc

tài trợ và hợp tác cùng Rapid7.

1.2 Kiến trúc W3AF
W3af được chia thành hai phần chính, đó là core và các plug-in. Bộ quét lỗ
hổng xác định hầu hết các lỗ hổng trong ứng dụng web bằng cách sử dụng hơn 130
plug-in. Phần core kết hợp với các quy trình và đưa ra các tính năng dựa trên plugin. Để từ đó tìm ra các lỗ hổng và khai thác chúng.
w3af hỗ trợ các kiểu plugin khác nhau: discovery, audit, crawl, grep, attack, output,
mangle, evasion, bruteforce, …

4


Hình 1. 1 Luồng thơng tin giữa các plugin

1.3 Các plugin hỗ trợ w3af
1.3.1 Các plugin chính
Cơng cụ w3af có 3 kiểu plugin chính: crawl, audit và attack.

1.3.1.1 Crawl plugins
Plugin này chỉ có một nhiệm vụ là tìm những URL, form hoặc những điểm
tiêm nhiễm khác. Một ví dụ cổ điển sử dụng plugin này là web spider. Nó sẽ nhận
đầu vào là các URL và trả về một hoặc nhiều điểm tiêu nhiễm hơn.
Khi một người dùng cho phép chạy nhiều hơn một loại plugin của loại này,
chúng sẽ chạy theo vịng lặp: Nếu plugin A tìm thấy URL mới trong lần chạy đầu
tiên, w3af sẽ gửi cho plugin B. Nếu plugin B tìm được URL mới, nó sẽ gửi cho
plugin A. Tiến trình này sẽ chạy cho đến khi tất cả các tiến trình đều chạy và khơng
tìm thêm được thông tin nào về ứng dụng nữa.
Một số ví dụ của plugin crawl là
- web_spider
- spider_main

- pykto
- url_fuzzer, …

5


1.3.1.2 Audit Plugins
Các điểm tiêm nhiễm được tìm thấy bởi crawl plugins và gửi dữ liệu được xử
lý thủ công tới tất cả để xác định các lỗ hổng. Một ví dụ cổ điển của một audit plugin
là tìm kiếm các lỗ hổng SQL injection bằng cách gửi ký tự a'b"c tới tất cả các điểm
tiêm nhiễm. Plugin audit lấy đầu ra của các plugin crawl và tìm các lỗ hổng như:
SQL injection, XSS, Buffer overflows, Response splitting, …
Khi các lỗ hổng nãy được tìm thấy, chúng được lưu như các đối tượng vuln trong dữ
liệu cơ sở.

1.3.1.3 Attack plugins
Mục tiêu của các plugin này là để khai thác các lỗ hổng được tìm thấy bởi
audit plugins. Chúng thường trả về một shell trên máy chủ từ xa, hoặc một dump của
remote tables trong trường hợp khai thác SQL injection. Một số ví dụ của các plugin
attack là:
- mySqlWebShell
- davShell
- sqlmap
- xssBeef
- remote file include shell

1.3.2 Các plugin khác
1.3.2.1 Infrastructure
Thông tin xác định về hệ thống mục tiêu như WAF (Web application
firewalls), hệ điều hành và HTTP daemon.


1.3.2.2 Grep
Để phân tích HTTP requests và responses được gửi bởi các plugin khác và
xác định các lỗ hổng. Ví dụ, một grep plugin sẽ tìm thấy một comment trong HTML
body chưa từ “password” và sinh một lỗ hổng.

6


1.3.2.3 Ouput
Là cách framework và các plugin giao tiếp với người dùng. Các output lưu dữ
liệu thành dạng file text, xml hoặc html. Các thông tin debugging cũng được gửi tới
các output plugin và có thể được lưu để phục vụ phân tích.
Các thơng điệp được gửi đến output manager được gửi tới tất cả các plugin
được kết nối, nên nếu bạn đã kết nối text_file và xml_file output plugins, cả 2 sẽ ghi
lại tất cả các lỗ hổng được tìm thấy bởi audit plugin.
Ý tưởng:
- Gửi các lỗ hổng tới một internal issue tracker sử dụng REST API
- Chuyển XML output của w3af và sử dụng nó như đầu vào cho các tool khác.

1.3.2.4 Mangle
Cho phép chỉnh sửa các request và response dựa trên regular expressions.

1.3.2.5 Bruteforce
Vét các các đăng nhập được tìm thấy trong suốt pha crawl.

1.3.2.6 Evasion
Những quy tắc tránh phát hiện xâm nhập đơn giản bằng cách thay đổi lưu lượng
HTTP được sinh ra bởi các plugin khác.


1.4 Cài đặt và cấu hình W3AF
W3AF có thể cài đặt trên tất cả các nền tảng hỗ trợ Python. Trong phạm vi bài báo
cáo này W3AF được đề cập cài đặt trên Kali Linux.
Trước khi cài đặt, ta cần chuẩn bị đảm bảo một số yêu cầu phần mềm:
• Git client
• Python 2.7 được cài đặt hầu hết trên các hệ điều hành
• Pip version 1.1: một trình quản lý thư viện cho Python

7


1.4.1 Cài đặt W3af trên Kali Linux
Thực hiện lần lượt các lệnh trên cửa sổ command:

Hình 1. 2 Cài đặt w3af trên Kali Linux

Với cách này sẽ cài đặt phiên bản w3af mới nhất cho giao diện ~/w3af/w3af_console
Sau khi quá trình hồn tất
- ./w3af_console để sử dụng giao diện console.
- ./w3af_gui để sử dụng giao diện đồ họa (lưu ý khi chạy có thể yêu cầu thêm
một số gói, chỉ cần làm theo hướng dẫn hiện ra)

1.4.2 Cấu hình và sử dụng W3af
1.4.2.1 Giao diện Console
W3af có 2 giao diện người dùng: giao diện console và đồ họa. Việc sử dụng
giao diện console sẽ dễ dàng hơn việc giải thích các tính năng của framework này.
Trên của sổ dịng lệnh (terminal), thư mục hiện tại là w3af:
$ ./w3af_console
w3af>>>
Tại cửa sổ này ta có thể cấu hình framework và các cài đặt plugin, khởi động quá

trình quét và tiến hành khai thác lỗ hổng.
Để tìm hiểu các tùy chọn được hỗ trợ bởi công cụ ta sử dụng lệnh help và có thể kèm
các tham số để xem chi tiết giải thích của lệnh.

8


Hình 1. 3 Lệnh help hỗ trợ cơng cụ

Để cấu hình tùy chọn cài đặt, ta chỉ cần gõ tên của nó và ấn enter.

Hình 1. 4 Cấu hình tùy chọn cài đặt

Tất cả các cấu hình menu cung cấp một số lệnh:
- help
- view
- set
- back
Ví dụ ta có thể set timeout mặc định của http-settings menu thành 5s thông qua lệnh
set.

9


Hình 1. 5 Cấu hình set timeout của http-settings

Ngồi ra người dùng có thể xem hướng dẫn chi tiết cấu hình phù hợp cho mỗi loại
tham số bằng cách sử dụng lệnh help parameter như sau:

Hình 1. 6 Xem thơng tin chi tiết về tham số timeout


10


1.4.2.2 Cấu hình các plugin
Sử dụng plugins để cấu hình các plugin:

Hình 1. 7 Thơng tin các plugin trong w3af_console

Tất cả các plugin (trừ attack plugin) đều có thể cấu hình trong menu này.
Liệt kê tất cả các plugin của audit:

Hình 1. 8 Liệt kê các plugin của audit

11


Để biết mô tả chi tiết về plugin ta sử dụng kèm lệnh desc:

Hình 1. 9 Mơ tả chi tiết các plugin audit

Hình 1. 10 Mơ tả chi tiết các plugin xss của audit

12


Hoặc kiểm tra thơng số chi tiết cấu hình plugin sử dụng cùng lệnh config:

Hình 1. 11 Kết nối plugin persistent_xss


Mỗi cấu hình được lưu vào profiles, sử dụng lệnh save_as:

Hình 1. 12 Lưu thơng tin profiles

Đường diễn đến profiles là ~/.w3af/profiles/ và được load lên bằng lệnh use:

Hình 1. 13 Kết nối profile fast_scan

Để chia sẻ profile với những người dùng khác, sử dụng cờ self-contained:

Hình 1. 14 Lưu cờ self-contained
13


1.4.2.3 Bắt đầu quá trình quét
Sau khi cấu hình xong, phải chọn URL làm mục tiêu quét:

Hình 1. 15 Đặt mục tiêu URL phục vụ việc quét

Và bắt đầu thực hiện scan:

Hình 1. 16 Bắt đầu thực hiện quét

1.4.2.4 Tự động hóa sử dụng script
Để thuận lợi cho việc tăng tốc và thực thi dễ dàng hơn, w3af hỗ trợ chạy file
script sử dụng điều kiện -s. File script là những file dạng text với trong của sổ
w3af_console. Ví dụ một script file:

Hình 1. 17 Tự động hóa sử dụng script


Các file script nằm trong thư mục scripts/.

1.4.2.5 Xác thực (Authentication)
Các kiểu xác thực mà w3af hỗ trợ:
• Xác thực HTTP Basic
• Xác thực NTLM
• Xác thực form
14


• Cài đặt một HTTP cookie
Xác thực Basic và NTLM là hai loại xác thực HTTP thường được cung cấp
bởi các máy chủ web, trong khi các phương pháp xác thực form và cookie được cung
cấp bởi những ứng dụng của chính nó.

a, Xác thực Basic và NTLM
Việc cấu hình sử dụng http-settings sẽ có thẻ ảnh hưởng tới tất cả các plugin và các
thư viện khác.

Hình 1. 18 Cấu hình thơng tin xác thực NTLM

Xác thực NTLM và basic thường yêu cầu username với ký tự \, cần nhập \ trong
w3af_console. Ví dụ người dùng là domain\user, sử dụng lệnh:
set basic_auth_user domain\\user

b, Xác thực Form
Xác thực Form đã được thay đổi đáng kể trong phiên bản gần nhất của w3af.
Bắt đầu từ version 1.6 xác thực form được cấu hình sử dụng plugin auth gồm 2
plugin:
• detailed

15


• generic
Đây là những plugin đặc biệt chịu trách nhiệm lưu giữ một phiên trong suốt
quá trình quét, được làm mới lại 5 giây một lần trong quá trình quét để xác thực nếu
phiên hiện tại vẫn còn và tạo một phiên mới nếu cần thiết.
Cấu hình plugin xác thực generic bao gồm các tùy chọn:
• username: Tài khoản ứng dụng web
• password: Mật khẩu ứng dụng web
• user_field: Tên của form nhập tài khoản trong mã nguồn đăng nhập HTML
• password_field: Tên của form nhập password trong mã nguồn đăng nhập
HTML
• auth_url: Đường dẫn URL tài khoản và mật khẩu được POST tới
• check_url: Đường dẫn URL sẽ được sử dụng để kiểm tra nếu phiên vẫn hoạt
động, thường được đặt bởi trang cài đặt ứng dụng web
• check_string: Nếu tìm thấy một chuỗi trong phản hồi HTTP của check_url
chứng tỏ phiên vẫn còn hoạt động. Tùy chọn này thường set một chuỗi có thể
chỉ được tìm thấy trong trang cài đặt của người dùng, ví dụ họ tên người dùng.

c, Cài đặt HTTP Cookie
Trong trường hợp một số xác thực form khơng hoạt động, điều này có thể liên
quan đến form đăng nhập chứa xác thực anti-CSRF tokens hoặc two factor. w3af
cung cấp cho người dùng một phương thức đặt một hoặc nhiều HTTP cookie để sử
dụng trong suốt q trình qt.
Các cookie này có thể được bắt theo nhiều cách: trực tiếp từ trình duyệt, sử dụng
web proxy, wireshark, …
Ví dụ: tạo một file Netscape format cookie jar sử dụng trình soạn thảo văn bản, thay
thế các giá trị sau:


16


Hình 1. 19 Cài đặt HTTP Cookie

Mỗi file tạo ra được thiết lập cài đặt cookie_jar_file trong http_settings.
Cấu hình plugin crawl.web_spider để chỉ liên kết đăng xuất. Điều này quan trọng
khi chúng ta muốn giữ phiên tồn tại trong suốt quá trình quét.

d, Cài đặt HTTP headers
Một số ứng dụng web được hỗ trợ cấu hình HTTP headers cho việc xác thực
bởi w3af. Phương pháp này sẽ đặt một HTTP request header vào mỗi HTTP request
được gửi bởi framework. Lưu ý là khơng có xác minh tình trạng phiên, nếu phiên bị
vơ hiệu hóa thì q trình qt vẫn sử dụng một phiên không hợp lệ.
Để sử dụng phương pháp này cần phải:
• Tạo file text với nội dụng: Cookie: <insert-cookie-here> mà khơng có dấu
ngoặc kép và chèn các cookie mong muốn.
• Sau đó trong menu cấu hình http-settings đặt tham số cấu hình headers_file
trỏ đến file vừa tạo.
• Save
Kết quả trình quét w3af được cấu hình để sử dụng HTTP session cho tất cả các

HTTP request.

17


CHƯƠNG 2: TỔNG QUAN VỀ TẤN CÔNG LỖ
HỔNG ỨNG DỤNG WEB
2.1 Tổng quan về ứng dụng web

2.1.1 Giới thiệu chung
Web application (ứng dụng web) là chương trình máy tính sử dụng trình duyệt
web và cơng nghệ web để thực hiện các tác vụ qua Internet. Các ứng dụng web (web
application) sử dụng kết hợp các server-side scripts để xử lý việc lưu trữ và truy xuất
thông tin, và client-side scripts để trình bày thơng tin cho người dùng. Điều này cho
phép người dùng tương tác với các doanh nghiệp bằng biểu mẫu trực tuyến, hệ thống
quản lý nội dung, giỏ hàng mua sắm và hơn thế nữa. Ngoài ra, các ứng dụng còn cho
phép nhân viên tạo tài liệu, chia sẻ thông tin, cộng tác trên các dự án và làm việc
trên các tài liệu chung bất kể vị trí hoặc thiết bị.

2.1.2 Cơ chế hoạt động của ứng dụng web

Hình 2. 1 Cơ chế hoạt động của ứng dụng web

18


Các ứng dụng web thường được mã hóa bằng ngơn ngữ được trình duyệt hỗ
trợ như JavaScript và HTML vì các ngơn ngữ này dựa trên trình duyệt để render
chương trình thực thi. Có một số ứng dụng động u cầu q trình xử lý phía máy
chủ, cịn lại các ứng dụng tĩnh sẽ hồn tồn khơng cần xử lý ở phía máy chủ. Luồng
hoạt động của ứng dụng web như sau:
• Người dùng kích hoạt request tới web server qua Internet, thơng qua trình
duyệt web hoặc giao diện người dùng của ứng dụng.
• Web server chuyển tiếp request này đến web application server thích hợp.
• Máy chủ ứng dụng Web (web application server) thực hiện nhiệm vụ được
yêu cầu, chẳng hạn như truy vấn cơ sở dữ liệu hoặc xử lý dữ liệu - sau đó tạo
ra các kết quả của dữ liệu được yêu cầu.
• Máy chủ ứng dụng web gửi kết quả đến máy chủ web với thông tin được yêu
cầu hoặc dữ liệu đã được xử lý.

• Máy chủ web phản hồi response lại cho khách hàng các thơng tin được u
cầu sau đó xuất hiện trên màn hình của người dùng.

2.2 Một số phương thức tấn công lỗ hổng bảo mật ứng dụng web
2.2.1 Giới thiệu chung
Theo thống kê mới nhất, có 90% lỗ hổng bảo mật bắt nguồn từ ứng dụng Web,
90% nhà quản trị chưa có cái nhìn tổng quan về bảo mật WebApp. Đây là lý do dẫn
tới số lượng các cuộc tấn cơng trên mạng ngày càng nhiều.
Có thể phân chia các dạng lỗ hổng bảo mật trên hệ thống nói chung thành ba
cấp độ nguy hiểm như sau:
Lỗ hổng loại C: Các lỗ hổng loại này cho phép thực hiện các phương thức
tấn công theo DoS (Dinial of Services – Từ chối dịch vụ). Mức độ nguy hiểm thấp,
chỉ ảnh hưởng tới chất lượng dịch vụ, có thể làm ngưng trệ, gián đoạn hệ thống;
không làm phá hỏng dữ liệu hoặc đạt được quyền truy nhập bất hợp pháp.
Lỗ hổng loại B: Các lỗ hổng cho phép người sử dụng có thêm các quyền trên
hệ thống mà khơng cần thực hiện kiểm tra tính hợp lệ. Mức độ nguy hiểm trung bình;
19


Những lỗ hổng này thường có trong các ứng dụng trên hệ thống; có thể dẫn đến mất
hoặc lộ thơng tin yêu cầu bảo mật.
Lỗ hổng loại A: Các lỗ hổng này cho phép người sử dụng ở ngồi có thể truy
nhập vào hệ thống bất hợp pháp. Lỗ hổng rất nguy hiểm, có thể làm phá hủy tồn bộ
hệ thống.
Các lỗ hổng bảo mật ứng dụng web là các điểm yếu của hệ thống cung cấp
dịch vụ Web cho phép tin tặc tấn công đánh cắp dữ liệu người dùng, dữ liệu hệ thống,
kiểm soát ứng dụng web, hoặc thậm chí kiểm sốt cả hệ thống máy chủ chạy ứng
dụng web. Các lỗ hổng bảo mật ứng dụng web rất đa dạng và bao gồm cả ba loại
trên.


2.2.2 Các phương thức khai thác lỗ hổng bảo mật ứng dụng web
2.2.2.1 Lỗ hổng XSS (Cross Site Scripting)
Mối đe dọa tiềm ẩn trong XSS cho phép thực hiện các kịch bản trong trình
duyệt có thể chiếm quyền điều khiển phiên người dùng, gỡ bỏ trang Web… Lỗ hổng
này là do việc xác nhận không hợp lệ của người sử dụng cung cấp dữ liệu khi một
ứng dụng lấy dữ liệu đó và gửi nó tới một trình duyệt web mà khơng cần xác nhận
hoặc mã hóa nội dung. Thơng qua lỗ hổng XSS, kẻ tấn cơng có thể chiếm quyền
điều khiển phiên người dùng, gỡ bỏ trang web, và có thể đánh cắp thơng tin của
người dùng dựa trên trình duyệt. Bản chất của dạng tấn công này là dựa vào trình
duyệt. Tin tặc có thể chèn mã JavaScript vào các trang web có lỗi XSS, khi người
dùng truy cập vào những trang web này, lập tức mã script của tin tặc sẽ hoạt động
lưu lại thông tin người dùng.

2.2.2.2 Chèn mã độc hại (Injection flaws)
Từ lỗ hổng này kẻ tấn cơng có thể lừa các ứng dụng để thực hiện các lệnh bất
chính hoặc vào thay đổi dữ liệu hệ thống. Các lỗi injection, đặc biệt là SQL injection,
phổ biến trong các ứng dụng web. Nó xảy ra khi người dùng cung cấp dữ liệu được
gửi đến một thông dịch viên như là một phần của một lệnh hoặc truy vấn.

20


Hacker có thể sử dụng điểm yếu của các truy vấn đầu vào bên trong ứng dụng để
chèn thêm dữ liệu khơng an tồn, từ đó máy chủ có thể bị tấn công bởi một số dạng
như: SQL Injection, Xpath Injection, XML Injection, Buffer overflow, LDAP
lookups, Shell
command Injection. Một số hoặc tất cả những dữ liệu quan trọng của tổ chức
bạn sẽ bị hacker truy cập trái phép, chúng có thể sửa đổi, xóa bỏ thơng tin hoặc thậm
chí lợi dụng để tống tiền.


2.2.2.3 Tệp tin chứa mã độc
Nguy cơ bị tấn cơng tiềm ẩn với việc mã hóa trong tích hợp tệp tin từ xa (RFI)
có thể cho phép kẻ tấn công tạo sự thỏa hiệp của máy chủ. Dạng tấn cơng bằng tệp
tin chứa mã độc này có thể ảnh hưởng đến PHP, XML và bất kỳ tập tin nào từ người
dùng.

2.2.2.4 Lỗ hổng CSRF (Cross-Site Request Fogery)
Một trong những lỗ hổng bảo mật thường gặp trong ứng dụng Web là lỗ hổng
CSRF.Mối đe dọa tiềm ẩn từ lỗ hổng này là nó có thể buộc một nạn nhân đăng nhập
trình duyệt để gửi một yêu cầu trước khi chứng thực đến một ứng dụng Web dễ bị
tấn cơng, mà sau đó buộc trình duyệt của nạn nhân thực hiện một hành động thù địch
với lợi ích của kẻ tấn cơng. CSRF có thể mạnh mẽ như các ứng dụng Web mà nó tấn
cơng.
Lợi dụng cơ chế tự động đăng nhập vào một số website, tin tặc có thể điều
hướng người dùng thực hiện các đoạn chứa mã độc, nhúng vào các website mà người
dùng đang trong phiên làm việc. Từ đó, mã độc sẽ chạy trên trình duyệt của người
dùng và hacker sẽ thực hiện các hành vi gian lận. Vì vậy, trong một số diễn đàn hoặc
website khi bạn đăng nhập tài khoản, tốt nhất không nên lưu mật khẩu, tên người
dùng.

2.2.2.5 Tham chiếu đối tượng trực tiếp khơng an tồn
Mối đe dọa tiềm ẩn ở đây là những kẻ tấn cơng có thể lợi dụng những tài liệu
tham khảo để truy cập vào quyền của các đối tượng khác mà không sự cho phép.
21


Một tham chiếu đối tượng trực tiếp xảy ra khi một nhà phát triển cho thấy một tham
chiếu đến một đối tượng thực hiện nội bộ, chẳng hạn như tệp tin, thư mục, bản ghi
cơ sở dữ liệu hoặc khóa, dưới dạng URL hoặc tham số biểu mẫu. Ví dụ: A có thể
mạo danh là B để truy cập vào hệ thống.

Việc tham chiếu các đối tượng, tệp tin, file, bản ghi cơ sở dữ liệu cần được
thực hiện gián tiếp và những thông tin nhạy cảm nên được che giấu. Bên cạnh đó,
việc phân quyền nhà quản trị cũng cần cài đặt bảo mật ở chế độ cao nhất, không cho
phép người lạ truy cập trái phép. Một khi hacker có thể xác định được cấu trúc thơng
tin chuyển tới server, chúng có thể thu thập dữ liệu người dùng, ăn cắp tài khoản thẻ
tín dụng, …

2.2.2.6 Rị rỉ thông tin và xử lý lỗi không đúng cách
Mối đe dọa tiềm ẩn từ việc rị rỉ thơng tin và xử lý lỗi không đúng cách
(Broken Authentication and Session Management) có thể giúp tin tặc ăn cắp dữ liệu
nhạy cảm, hoặc tiến hành các cuộc tấn công nghiêm trọng hơn. Một ứng dụng web
khơng được bảo mật tốt có thể vơ ý rị rỉ thơng tin về cấu hình, hoạt động bên trong,
hoặcvi phạm sự riêng tư thông qua một loạt các vấn đề ứng dụng.

2.2.2.7 Quản lý xác thực và quản lý phiên yếu
Khâu xác thực (authentication) và trao quyền (authorisation) được sử dụng
khá phổ biến trong các ứng dụng web. Nếu một trong 2 khâu này không bảo mật
mạnh mẽ thì đây chính là lỗ hổng tiềm ẩn giúp tin tặc xâm nhập vào hệ thống. Mối
đe dọa tiềm ẩn ở đây là kẻ tấn cơng có thể thỏa hiệp mật khẩu, mã khóa hoặc danh
tính người dùng. Để hạn chế nguy cơ tấn công, quản trị viên nên thiết lập session
thật tốt.

2.2.2.8 Không hạn chế truy nhập vào URL nội bộ
Lỗ hổng này cho phép kẻ tấn công cơ hội truy cập và thực hiện trái phép
hoạt động bằng cách trực tiếp truy cập các URL đó. Lỗi này là do ứng dụng chỉ

22


bảo vệ chức năng nhạy cảm khi ngăn chặn hiển thị liên kết hoặc URL cho người

dùng trái phép.
Một trong những giải pháp nhằm hạn chế sự tấn công từ bên trong nội bộ
mà nhà quản trị nên làm là hạn chế sự truy cập vào các URL quan trọng. Bạn có
thể hạn chế địa chỉ IP, hạn chế sử dụng phân quyền, sự truy cập trực tiếp vào URL.

2.2.2.9 Không kiểm tra sự điều hướng và chuyển tiếp của URL
Lợi dụng sơ hở này, tin tặc có thể điều hướng đường link gốc đến một trang
Web hoặc 1 ứng dụng lừa đảo hoặc trang Web đen. Khi click vào đường dẫn tới
trang Web lừa đảo, máy tính của người dùng có thể bị nhiễm mã độc và hacker sau
đó có thể ép người dùng tiết lộ thơng tin cá nhân.

2.2.2.10 Sử dụng các lỗ hổng có sẵn trong thư viện
Một số lỗi xuất phát từ thư viện ứng dụng, một số nằm trong plugin cài thêm,
số khác ở trong module ứng dụng. Cũng chính vì điều này mà hacker nhanh chóng
khai thác các lỗ hổng bảo mật và hàng loạt người dùng, thiết bị bị ảnh hưởng.

2.3 Một số nguyên nhân gây ra các lỗ hổng bảo mật ứng dụng web
2.3.1 Nguyên nhân do nền tảng xây dựng ứng dụng web
Với sự bùng nổ của các trang thương mại điện tử, rất nhiều ứng dụng web ra đời để
đáp ứng nhu cầu của người dùng. Cũng chính vì vậy, sẽ gây khó khăn cho các tổ
chức và cá nhân để chọn riêng cho mình nền tảng web phù hợp. Rất nhiều nền tảng
ứng dụng web được xây dựng: nền tảng tự code riêng, nền tảng Laravel, nền tảng
wordpress... khi tham gia mơi trường mạng internet khơng tích hợp được các cơng
nghệ truyền thống, dẫn đến làm suy giảm tính năng của ngôn ngữ hoặc công nghệ,
cũng làm cho rủi ro tiềm tàng của dịch vụ

2.3.2 Nguyên nhân do hạn tầng cung cấp dịch vụ web
- Tính bí mật, những rủi ro sau là hiện hữu: thu lén trên đường truyền liên lạc, nhà
cung cấp tiếp cận những dữ liệu nhạy cảm, lộ lọt dữ liệu do nhà cung cấp dịch vụ,
lộ lọt dữ liệu phía nội bộ

23


×