Tải bản đầy đủ (.doc) (67 trang)

MỘT SỐ PHƯƠNG PHÁP TẤN CÔNG VÀO TRANG WEB VÀ CÁCH PHỒNG CHỐNG

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 (622.21 KB, 67 trang )

MỤC LỤC
MỤC LỤC.........................................................................................................................1
MỤC LỤC HÌNH..............................................................................................................6
GIỚI THIỆU.....................................................................................................................7
CHƯƠNG I: TỔNG QUAN VỀ WEB VÀ CÁC NGUY CƠ TẤN CÔNG ỨNG
DỤNG WEB.....................................................................................................................9
I.1 TỔNG QUAN VỀ WEB..........................................................................................9
I.1.1 Khái niệm ứng dụng Web..................................................................................9
I.1.2 Các vấn đề liên quan đến ứng dụng Web........................................................11
I.1.3 Mô tả hoạt động của ứng dụng Web...............................................................11
I.2 CÁC KHÁI NIỆM THUẬT NGỮ LIÊN QUAN..................................................12
I.2.1 Hacker..............................................................................................................12
I.2.2 HTTP và HTTPS.............................................................................................12
I.2.3 Session.............................................................................................................14
I.2.4 Cookie..............................................................................................................15
I.2.5 Poxy.................................................................................................................16
I.2.6 Firewall............................................................................................................17
I.3 GIỚI THIỆU SƠ LƯỢC VỀ CÁC KĨ THUẬT TẤN CÔNG ỨNG DỤNG WEB
......................................................................................................................................17
I.3.1 Kiểm soát truy cập Web(Web Access Control)..............................................17
I.3.2 Chiếm hữu phiên làm việc(Session Mangement)...........................................17
I.3.2.1 Ấn định phiên làm việc (Session Fixation)...............................................17
I.3.2.2 Đánh cắp phiên làm việc (Session Hijacking)..........................................17
I.3.2.3 Lợi dụng các thiếu sót trong việc kiểm tra dữ liệu nhâp hợp lệ (Input
validation).............................................................................................................18
I.3.2.3.1 Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt
(Client-Side validation)........................................................................................18
-1-


I.3.2.3.2 Tràn bộ đệm (Buffer OverFlow)............................................................18


I.3 SƠ LƯỢC VỀ QUÁ TRÌNH TẤN CÔNG CỦA HACKER................................18
I.3.1 Các giai đoạn tấn công.....................................................................................18
I.3.2 Khảo sát ứng dụng Web..................................................................................20
I.3.3 Tấn công mục tiêu...........................................................................................22
I.4 SƠ LƯỢC VỀ CÁC KĨ THUẬT TẤN CÔNG ỨNG DỤNG WEB....................23
I.4.1 Kiểm soát truy cập web (Web Access Control)..............................................23
I.4.2 Chiếm hữu phiên làm việc (Session Mangement)..........................................23
I.4.2.1 Ấn định phiên làm việc (Session Fixation)...............................................23
I.4.2.2 Đánh cắp phiên làm việc (Session Hijacking)..........................................23
I.4.3 Lợi dụng các thiếu sót trong việc kiểm tra dữ liệu nhập hợp lệ (Input
validation).................................................................................................................23
I.4.3.1 Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt
(Client-Side validation)........................................................................................23
I.4.3.2 Tràn bộ đệm (Buffer OverFlow)...............................................................23
I.4.3.3 Mã hoá URL (URL Encoding).................................................................23
I.4.3.4 Kí tự Meta (Meta-characters)....................................................................24
I.4.3.5 Vượt qua đường dẫn (Path Traversal):.....................................................24
I.4.3.6 Chèn mã lệnh thực thi trên trình duyệt nạn nhân (Cross- Site Scripting):
...............................................................................................................................24
I.4.3.7 Thêm câu lệnh hệ thống (OS Command Injection):.................................24
I.4.3.8 Chèn câu truy vấn SQL (SQL Injection)..................................................24
I.4.3.9 Ngôn ngữ phía máy chủ (Server side includes)........................................24
I.4.3.10. Kí tự rỗng (Null Characters)..................................................................25
I.4.3.11 Thao tác trên tham số truyền (Paramet manipulation)...........................25
I.5 Để lộ thông tin (informational)..............................................................................25
I.6 Từ chối dich vụ (Denial of service (DoS).............................................................25
-2-


Chương II: KỸ THUẬT TẤN CÔNG VÀO CÁC LỖ HỔNG TRÊN WEBSITE VÀ

CÁCH PHÒNG CHỐNG...............................................................................................27
II.1 THỰC TRẠNG AN NINH MẠNG TẠI VIỆT NAM HIỆN NAY VÀ DỰ BÁO
XU HƯỚNG AN NINH MẠNG NĂM 2011.............................................................27
II.1.2 Các cuộc tấn công của hacker và những thiệt hại mà nó gây ra hiện nay tại
Việt Nam..................................................................................................................28
II.1.3 Dự báo xu hướng an ninh mạng năm 2011....................................................30
II.2 SƠ LƯỢC VỀ MỘT SỐ BIỆN PHÁP KIỂM TRA AN TOÀN WEB...............31
II.2.1 Webscarab......................................................................................................31
II.2.2 WebGoat.........................................................................................................34
II.2.3 Burp Suite.......................................................................................................35
II.3 CÁC KỸ THUẬT TẤN CÔNG CỦA HACKER VÀO LỖ HỎNG TRÊN
TRANG WEB VÀ BIỆN PHÁP PHÒNG CHỐNG..................................................35
II.3.1 Tấn công chèn câu truy vấn SQL Injection và các biện pháp phòng chống. 35
II.3.1.1 SQL Injection là gì?.................................................................................35
II.3.1.2 Các dạng tấn công SQL Injection............................................................36
II.3.1.2.1 Dạng tấn công vượt qua kiểm tra đăng nhập........................................36
II.3.1.2.2 Dạng tấn công sử dụng câu lệnh SELECT...........................................38
II.3.1.2.3 Dạng tấn công sử dụng câu lệnh INSERT...........................................39
II.3.1.2.4 Dạng tấn công sử dụng stored-procedures...........................................40
II.3.1.3 Cách phòng tránh.....................................................................................40
II.3.1.3.1 Kiểm soát chặt chẽ dữ liệu nhập vào....................................................41
II.3.1.3.2 Thiết lập cấu hình an toàn cho hệ quản trị cơ sở dữ liệu.....................42
II.3.2 Chèn mã lệnh thực thi trên trình duyệt Cross-Site Scripting.........................43
II.3.2.1Tấn công Cross-Site Scripting..................................................................43
II.3.2.2 Phương pháp tấn công XSS truyền thống...............................................45
II.3.2.3 Cách phòng ngừa.....................................................................................46
-3-


II.3.3 Chiếm hữu phiên làm việc (Session Management).......................................47

II.3.3.1 Tổng quan về Session ID.........................................................................47
II.3.3.2 Ấn định phiên làm việc............................................................................48
II.3.3.3 Đánh cắp phiên làm việc..........................................................................50
II.3.3.4 Cách phòng ngừa.....................................................................................50
II.3.4 Từ chối dịch vụ (DOS)...................................................................................51
II.3.4.1 Khái niệm tấn công kiểu DoS (Denial of Service)..................................51
II.3.4.2 Các kỹ thuật tấn công...............................................................................52
II.3.4.2.1 Khái niệm Tcp bắt tay ba chiều............................................................52
II.3.4.2.2 Lợi dụng TCP thực hiện phương pháp SYN flood truyền thống.........53
II.3.4.2.3 Tấn công vào băng thông......................................................................53
II.3.4.2.4 Kiểu tấn công vào tài nguyên hệ thống................................................55
II.3.4.3 Cách phòng ngừa.....................................................................................56
II.3.5 MỘT SỐ KĨ THUẬT TẤN CÔNG KHÁC...................................................57
II.3.5.1 Mã Hóa URL (URL Encoding)...............................................................57
II.3.5.1.1 Khái niệm..............................................................................................57
II.3.5.1.2 Một số biện pháp phòng chống.............................................................58
II.3.5.2 Kiểu tấn công vượt đường dẫn................................................................58
II.3.5.2.1 Khái niệm..............................................................................................58
II.3.5.2.2 Một số biện pháp phòng chống.............................................................58
II.3.5.3 TẤN CÔNG DỰA VÀO KÍ TỰ RỖNG.................................................58
II.3.5.3.1 Khái niệm..............................................................................................58
II.3.5.3.2 Một số biện pháp phòng chống.............................................................58
II.3.5.4 Ngôn ngữ phía trình chủ..........................................................................59
II.3.5.4.1 Khái niệm..............................................................................................59
II.3.5.4.3 Cách tấn công........................................................................................59
-4-


II.3.5.4.4 Biện pháp phòng chống........................................................................59
II.4 TỔNG KẾT QUÁ TRÌNH TẤN CÔNG CỦA HACKER..................................60

II.4.1 Thu thập thong tin ở mức hạ tầng của mục tiêu............................................60
II.4.2 Khảo sát ứng dụng web..................................................................................61
II.4.3 Tấn công.........................................................................................................62
II.5 TỔNG KẾT CÁC BIỆN PHÁP PHÒNG CHỐNG.............................................63
II.5.1 Với những nhà quản trị mạng........................................................................63
II.5.2 Với những nhà thiết kế ứng dụng WEB........................................................64
II.5.3 Với những người sừ dụng Web......................................................................66

-5-


MỤC LỤC HÌNH
Hình I.1 Một số ứng dụng web thường có kiến trúc.....................................................9
Hình I.2 Mô hình hoạt động của một ứng dụng Web.................................................10
Hình 1.3 Quá trình tấn công của hacker......................................................................18
Hình II.1 Giao diện báo điện tử VietNamNet bị tấn công..........................................29
Hình II.2 Quá trình thực hiện XSS..............................................................................46
Hình II.3 Quá trình tấn công người dùng bằng kỹ thuật ấn định session...................48
Hình II.4 Tấn công Session ID trên tham số URL......................................................49
Hình II.5 Cơ chế thiết lập kết nối trước khi truyền số liệu.........................................52
Hình II.6 Tấn công DoS truyền thống.........................................................................53
Hình II.7 Tấn công DDoS...........................................................................................54
Hình II.8 Tấn công DrDoS..........................................................................................55

-6-


GIỚI THIỆU
Ngày nay, khi Internet được phổ biến rộng rãi ,các tổ chức đều có nhu cầu giới
thiệu thông tin của mình trên xa lộ thông tin cũng như thực hiện các phiên giao dịch

trực tuyến. Vấn đề nảy sinh là vi phạm ứng dụng của các ứng dụng web ngày càng mở
rộng thì khả năng xuất hiện lỗi và bị tấn công càng cao, trở thành đối tượng cho nhiều
người tấn công với các mục đích khác nhau. Đôi khi cũng chỉ đơn giản là để thử tài
hoặc đùa bởn với người khác.
Cùng với sự phát triển không ngừng của Internet và các dịch vụ trên Internet, số
lượng dịch vụ tấn công trên Internet cũng tăng theo cấp số nhân. Trong khi các
phương tiện thông tin đại chúng ngày càng nhắc nhiều đến những khả năng truy cập
thông tin của Internet, thì các tài liệu chuyên môn bắt đầu đề cập đến nhiều vấn đề bảo
đảm và an toàn dữ liệu cho các máy tính kết nối vào mạng Internet.
Vì thế vấn đề bảo đảm và an toàn dữ liệu cho các máy tính được kết nối vào
mạng Internet là cần thiết nhằm mục đích bảo vệ dữ liệu, bảo vệ thông tin doanh
nghiệp, người dùng và bảo vệ hệ thống.
Tuy đã có nhiều cố gắng từ các nhà lập trình Web nhưng vẫn không thể đảm
bảo ngăn chặn toàn bộ vì công nghệ Web đang phát triển nhanh chóng (chủ yếu chú
trọng đến yếu tố thẩm mỹ, yếu tố tốc độ,…) nên dẫn đến nhiều khuyết điểm mới phát
sinh. Sự tấn công không nằm trong một vài khuôn khổ mà linh động và tăng lên tùy
vào những sai sót của nhà quản trị hệ thống cũng như của những người lập trình ứng
dụng.
Vì vậy, đề tài này đượ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 trong các ứng dụng Web.
* Mục tiêu và nhiệm vụ
 Tìm hiểu các vấn đề liên quan đến hoạt động của một ứng dụng Web.
 Tìm hiểu các kỹ thuật tấn công ứng dụng Web cơ bản như: SQL Injection,
Session, DOS.
 Xây dựng ứng dụng Web Demo thể hiện các cách tấn công của kỹ thuật SQL
Injection và đưa ra giải pháp fix các lỗ hổng trong chương trình.
 Kết quả thực hiện: nắm rõ bản chất và cách thức tấn công vào ứng dụng Web,
áp dụng vào thực tế để hạn chế thấp nhất khả năng bị tấn công các ứng dụng
Web sẽ triển khai.
-7-



* Đối tượng và phạm vi nghiên cứu
 Cở sở lý thuyết liên quan của hoạt động ứng dụng Web.
 Các mô hình tấn công đặc trưng vào ứng dụng Web.
 Kỹ thuật vượt qua cửa sổ đăng nhập.
 Kỹ thuật lợi dụng các câu lệnh Select, Insert.
 Kỹ thuật dựa vào các Stored Procedure.
 Các giải pháp phòng ngừa ở mức quản trị và người lập trình ứng dụng.
 Ngôn ngữ ASP.NET, SQL Server 2005.
* Phương pháp nghiên cứu
 Tổng hợp tìm hiểu, nghiên cứu từ các tư liệu liên quan.
 Phân tích, đánh giá các kỹ thuật tấn công. Đưa ra các giải pháp phòng ngừa ở
các mức.
 Thiết kế table cơ sở dữ liệu, xây dựng ứng dụng Web Demo thể hiện các cách
tấn công của SQL Injection.
* Ý nghĩa thực tiễn của đề tài
 Về mặt lý thuyết, đề tài thể hiện rõ các cách tấn công cơ bản thường được
hacker sử dụng để tấn công vào các ứng dụng Web từ trước đến nay, và có thể
sử dụng tiếp trong thời gian dài trong tương lai.
 Về mặt thực tiển, với các cách tấn công của hacker như đã tìm hiểu, nghiên cứu
trong báo cáo này, nếu áp dụng tốt các phương pháp phòng ngừa trong đề tài
nêu ra sẽ góp phần nâng cao khả năng bảo vệ các ứng dụng Web trước nguy cơ
tấn công của kẽ xấu.
* Bố cục của luận văn tốt nghiệp
Luận văn tốt nghiệp được chia thành 3 chương:
Chương 1:

TỔNG QUAN VỀ WEB VÀ CÁC NGUY CƠ TẤN CÔNG


ỨNG DỤNG WEB
Chương 2:

MỘT SỐ PHƯƠNG PHÁP TẤN CÔNG VÀO TRANG WEB

VÀ CÁCH PHỒNG CHỐNG
Chương 3:

XÂY DỰNG ỨNG DỤNG DEMO SQL INJECTION VÀ DOS

-8-


CHƯƠNG I: TỔNG QUAN VỀ WEB VÀ CÁC NGUY CƠ TẤN CÔNG
ỨNG DỤNG WEB
I.1 TỔNG QUAN VỀ WEB
I.1.1 Khái niệm ứng dụng Web
Ứng dụng Web là một ứng dụng chủ, khách sử dụng giao thức HTTP để 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 thường là một trình duyệt web như
Internet Explorer hay Netscape Navigator. Cũng có thể là một chương trình đóng vai
trò đại lý người dùng hoạt động như một trình duyệt tự động. Người dùng gửi và nhận
các thông tin từ trình chủ thông qua việc tác động vào các trang Web. Các chương
trình có thể là các trang trao đổi mua bán, các diển đàn ,gửi nhận e-mial…
Tốc độ phát triển của các kỷ thuật xây dựng ứng dụng web cũng phát triển rất
nhanh.Trước đây những ứng dụng web thường được xây dựng bằng CGI(Common
Gateway Interface)được chạy trên các trình chủ Web và có thể kết nối vào các cơ sỡ
dử liệu đơn giản trên cùng máy chủ. Ngày nay, ứng dụng web thường được viết bằng
Java( hay các ngôn ngữ tương tự) và chạy trên máy chủ phân tán, kết nối đến nhiều
nguồn dữ liệu.

Dù có nhiều biến thể, một ứng dụng Web thông thường được cấu trúc như một
ứng dụng ba lớp:

Hình I.1 Một số ứng dụng web thường có kiến trúc

- Lớp trình bày:Lớp này có nhiệm vụ hiển thị dữ liệu cho người dùng, ngoài ra
còn có thể có thêm các ứng dụng tạo bố cục cho trang web
-9-


- Lớp ứng dụng: Là nơi xử lý các ứng dụng web. Nó sẽ xử lý thông tin người
dùng yêu cầu, đưa ra quyết định, gửi kết quả đến “lớp trình bày” lớp này thường được
cài đặt bằng các kỷ thuật lập trình như CGI, Java, NET, PHP hay ColdFusion, được
triển khai trên các trình chủ như IBM WebSphere, WebLogic, Apache, IIS…
- Lớp dữ liệu : thường là các hệ quản trị dữ liệu(DBMS)chịu trách nhiệm quản
lý các file dữ liệu và quyền sử dụng.

Hình I.2 Mô hình hoạt động của một ứng dụng Web

Kiến trúc một ứng dụng Web
Trong đó :
 Trình khách (hay còn gọi là trình duyệt): Internet Explorer, Nétcap Navigator
 Trình chủ : Apache,IIS….
 Hệ quản trị cơ sỡ dữ liệu : SQL, Server, MySQL, DB2,Access…
Bên cạnh đó, một gải pháp dùng để bảo vệ một hệ thống mạng thường được sữ
dụng là bức tường lửa, nó có vai trò như là lớp rào chắn bên ngoài một hệ thống
mạng, vì chức năng chính của firewall là kiểm soát luồng thông tinh giữa các máy
tính. Có thể xem là firewall như một bộ lộc thông tin, nó xác định cho phép một máy
tính này được truy xuất đến một máy tính khác hay không, hay một mạng này có được
truy xuất đến mạng kia hay không?

Người ta thường dùng firewall vào mục đích:
 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ừ ngoài truy nhập vào trong.
-10-


 Kiểm soát địa chỉ truy nhập, cấm địa chỉ truy nhập.
Firewall hoạt động dựa trên gói IP do đó kiểm soát việc truy nhập của máy
người sử dụng.
I.1.2 Các vấn đề liên quan đến ứng dụng Web
- Nguồn gốc phát triển ứng dụng Web:
Các ứng dụng Web được phát triển từ nhiều nguồn khác nhau, nên các lỗ hổng,
các lỗi bảo mật cũng rất đa dạng. Tuy vậy, các ứng dụng Web chủ yếu được phát triển
từ các nguồn chính sau đây:
+ Người lập trình tự phát triển ứng dụng Web (Sử dụng các ngôn ngữ kịch bản
để tạo ứng dụng, phát triển rộng rãi mà ít quan tâm đến quá trình phát triển ứng dụng
an toàn. Thiếu đội ngũ lập trình với kỹ năng nhận biết phát triển ứng dụng tránh các lỗi
bảo mật).
+ Sử dụng ứng dụng Web từ mã nguồn mở (Thường không theo dõi và cập nhật
các bản vá lỗi bảo mật).
+ Phát triển ứng dụng Web từ một ứng dụng mở khác (Trường hợp này thường
không kiểm tra lỗi bảo mật ứng dụng củ trước khi phát triển tiếp, nên vẫn tồn tại các
lỗi bảo mật).
- Sự phát triển đa dạng của ứng dụng Web:
Ngày nay với sự phát triển bùng nổ của Internet, các ứng dụng Web cũng phát
triển đa dạng và mạnh mẽ trên nhiều lĩnh vực: Cổng thông tin điện tử, báo tin tức điện
tử, giao dịch tài chính ngân hàng, trị trường chứng khoán, trang thông tin điện tử
doanh nghiệp,…
I.1.3 Mô tả hoạt động của ứng dụng Web
Đầu tiên trình duyệt sẽ gửi một yêu cầu (request) đến trình chủ Web thông qua

các lệnh cơ bản GET,POST….của giao thức HTTP, trình chủ 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 trình
chủ yêu cầu bộ diển dịc thực thi các trang ASP,JSP…theo yêu cầu của trình khách.
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 khách gữi đến… và từ đó trả về cho trình
khách 1 luồng dữ liệu co đị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à thuộc tính, trạng thái trao đổi
giữa trình duyệt và WebServer.
-11-


- 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 với firewall,luồng thông tin giữa trình chủ và trình khách
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à 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 liên quan khác.
I.2 CÁC KHÁI NIỆM THUẬT NGỮ LIÊN QUAN
I.2.1 Hacker
Hacker là một thuật ngữ dùng để chuyên chỉ những kẻ phá hoại các hệ thống
mạng…Hacker thường là những chuyên gia về máy tính. Hacker không tạo ra các kẻ
hở cho hệ thống , nhưng hacker lại là những người am hiểu về hệ điều hành , hệ quản
trị dữ liệu, các ngôn ngữ lập trình….Họ sử dụng kiến thức của mình trong việc tìm tòi
và khai thác các lỗ hổng của hệ thống mạng.
Một số hacker chỉ dừng lại việc phát hiện và thông báo lổi tìm được cho những
nhà bảo mật hay người phát triển chương trình, họ được em như là WhiteHat(Hacker
nón trắng). Một số Hacker dựa vào lỗ hổng thực hiện việc khai thác trái phép nhằm

mục đích phá hoại hay mưu lợi riêng, những người này bị xem như là
BlackHat(Hacker nón đen).
I.2.2 HTTP và HTTPS
HTTP là chữ viết tắt từ HyperText Transfer Protocol (giao thức truyền tải siêu
văn bản). Nó là giao thức cơ bản mà World Wide Web sử dụng. HTTP xác định cách
các thông điệp (các file văn bản, hình ảnh đồ hoạ, âm thanh, video,…) được định dạng
và truyền tải ra sao, và những hành động nào mà các Web server và các trình duyệt
Web phải làm để đáp ứng các lệnh. Khi gõ một địa chỉ Web URL vào trình duyệt
Web, một lệnh HTTP sẽ được gửi tới Web server để ra lệnh và hướng dẫn nó tìm đúng
trang Web được yêu cầu và kéo về mở trên trình duyệt Web.
Tóm lại, HTTP là giao thức truyền tải các file từ một Web server vào một trình
duyệt Web để người dùng có thể xem một trang Web đang hiện diện trên Internet.

-12-


HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng cho
Internet).
HTTP header là phần đầu(header) của thông tin mà trình khách và trình chủ gữi
cho nhau. Những thông tin của trình khách gữi cho trình chủ được gọi là HTTP
requests(yêu cầu) còn trình chủ gữi cho trình là HTTP responses(trả lời). Thông
thường một HTTP header gồm nhiều dòng, mỗi dòng dựa trên tham số và giá trị. Một
số tham số có thể dùng trong cả header yêu cầu và header trả lời, còn số khác chỉ được
dùng riêng trong từng loại.
GET /tintuc/homnay.asp HTTP/1.1
Accept: */*
Accept-Language: en-us
Connection: Keep-Alive
Host: localhost
Referer: http://localhost/lienket.asp

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Accept-Encoding: gzip, deflate
Dòng đầu là dòng yêu cầu cho biết phương thức yêu cầu (GET hoặc POST), địa
chỉ yêu cầu (/tintuc/homnay.asp) và phiên bản HTTP .
Tiếp theo là các tham số. Chẳng hạn như :
+ Accept-Language: cho biết ngôn ngữ dùng trong trang web.
+ Host: cho biết địa chỉ của máy chủ.
+ Referer: Cho biết địa chỉ của trang web tham chiếu tới.
+ Header của HTTP request sẽ kết thúc bằng một dòng trống.
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Thu, 13 Jul 2000 05:46:53 GMT
Content-Length: 2291
Content-Type: text/html
Set-Cookie: ASPSESSIONIDQQGGGNCG=LKLDFFKCINFLDMFHCBCBMFLJ;
path=/
Cache-control: private
<HTML>
-13-


<BODY>
...
Dòng đầu là dòng trạng thái, để cho biết phiên bản HTTP được dùng, mã trạng
thái(200) và trạng thái (OK) Tiếp theo là các tham số. Tiếp theo là một dòng trống để
báo hiệu kết thúc header, tiếp theo là phần thân của HTTP response.
HTTPS (Secure HTTP), là một sự kết hợp giữa giao thức HTTP và giao thức
bảo mật SSL hay TLS cho phép trao đổi thông tin một cách bảo mật trên Internet. Các
kết nối HTTPS thường được sử dụng cho các giao dịch thanh toán trên World Wide
Web và cho các giao dịch nhạy cảm trong các hệ thống thông tin công ty, trong đó dữ

liệu cần phải được an toàn. HTTPS không nên nhầm lẫn với Secure HTTP (S-HTTP)
quy định trong RFC 2660.
Theo hai khái niệm ở trên, ta có thể thấy nếu trang Web có địa chỉ bắt đầu bằng
“ http:// ” thì có nghĩa rằng trang Web không an toàn. Nói cách khác, một người nào
đó có thể nghe lén những gì trao đổi với trang Web và có thể lấy những dữ kiện gửi đi
từ máy của bạn đến trang Web như tên tuổi, địa chỉ, số thẻ tín dụng,… Nhưng nếu địa
chỉ của trang Web bắt đầu bằng “https:// ” thì điều này có nghĩa là liên lạc an toàn với
server của trang Web và người ta không thể nghe lén và trộm những thông tin gửi đi.
I.2.3 Session
HTTP là giao thức hướng đối tượng tổng quát, phi trạng thái, nghĩa là HTTP
không lưu trạng thái làm việc giữa trình duyệt với trình chủ. Sự thiếu sót này đã gây
khó khăn cho một số ứng dụng Web, bởi vì trình chủ không biết được trước đó trình
duyệt đã có những trạng thái nào. Vì thế để giải quyết vấn đề này, ứng dụng web đưa
ra một khái niệm phiên làm việc(Session). Còn SessionID là một chuỗi để chứng thực
phiên làm việc. Một số trình chủ sẽ cung cấp một SessionID cho người dùng khi họ
xem trang web trên trình chủ
Để duy trì phiên làm việc thì SesionID thường được lưu vào:
+ Biến trên URL
+ Biến ẩn form
+ Cookie
Phiên làm việc chỉ tồn tại trong một khoảng thời gian cho phép, thời gian này
được cấu hình quy định tại trình chủ hay với ứng dụng thực thi. Trình chủ sẽ tự động
giải phóng phiên làm việc để khôi phục lại tài nguyên của hệ thống.
-14-


I.2.4 Cookie
Cookie là những phần dữ liệu nhỏ có cấu trúc được chia sẻ giữa trình chủ và
trình duyệt giữa người dùng.
Các Cookie được lưu trữ dưới dạng file dữ liệu nhỏ dạng text, được ứng dụng

tạo ra để lưu trữ ,truy tìm , nhận biết các thông tin về người dùng đã ghé thăm trang
web và những vùng họ đi qua trong trang. Những thông tin này có thể bao gồm tên
,định dạng người dùng, mật khẩu, sở thích, thói quen..cookie được trình duyệt của
người dùng chấp nhận lưu trên đĩa cứng của máy mình, tuy nhiên không phải lúc nào
trình duyệt cũng hổ trợ cookie, mà còn tùy thuộc vào người dùng có chấp nhận chuyện
lưu trữ đó hay không.
Ở những lần truy cập sau đến trang web đó, ứng dụng có thể dùng lại những
thông tin trong cookie(như thông tin liên quan đến việc đăng nhập vào Yahoo
Messenger.. )mà người dùng không phải làm lại những thao tác đăng nhập hay phải
cung cấp lại các thông tin khác.
+ Persistent và Secure
+ Persistent và Non-Secure
+ Non-Persistent và Secure
+ Non-Persistent và Non-Secure
Persistent cookie được lưu trữ dưới dạng tập tin.txt(ví dụ trình duyệt Nétcape
Navigator sẽ lưu các cookie thành một tập tin cookie.txt còn Internet Explorer sẽ lưu
thành nhiều tập tin *.txt trong đó mỗi tập tin là một cookie) trên máy khách trong một
khoảng thời gian xác định.
Non-persistent cookie thì được lưu trữ trên bộ nhớ RAM của máy khách và sẽ
bị hủy khi đóng trang Web hay nhận được lệnh từ trang web.
Secure cookie chỉ có thể được gửi thông tin qua HTTPS(SSL).
Non-Secure cookie có thể được gữi bằng hai giao thức HTTPS hay HTTP.
Thực chất là đố với sercure cookie thì trình chủ sẻ cung cấp chế độ truyền bảo mật.
Các thành phần của một cookie gồm :

-15-


Domain


Flag

www.redhat.com FALSE

Path Secure

Expiration

FALSE 1154029490

Name

Apach
e

Value
64.3.40.151.16
018996349247
409

Domain : Tên miền của trang web đã tạo cookie (Trong ví dụ trên là
www.redhat.com)
Flag : mang giá trị TRUE/FALSE – Xác định các máy khác với cùng tên miền có
được truy xuất đến cookie hay không.
Path : Phạm vị các địa chỉ có thể truy xuất cookie. Ví dụ :
Nếu path là”/tracuu”thì các địa chỉ trong thư mục /tracuu cũng như tất cả các
thư mục con của nó như /tracuu/baomat có thể truy xuất đến cookie này. Còn nếu giá
trị là “/” thì cookie có thể truy xuất đến tất cả địa chỉ thuộc miền trang web tạo cookie.
Sereure : Mang giá trị TRUE/FALSE –Xác định đây là một secure cookie hay không
nghĩa là kết nối có sử dụng SSL hay không.

Expiration : Thời gian hết hạn của cookie, đực tính bằng giây kể từ 00:00:00 giờ
GMT ngày 01/01/1970. Nếu giá trị này không được thiết lập thì trình duyệ sẽ hiểu đây
là non-persistent cookie và chỉ lưu trong bộ nhớ RAM và sẽ xóa nó khi trình duyệt bị
đóng.
Name : Tên biến (trong trường hợp này là Apache)
Value : Với cookie được tạo ở trên thì giá trị của Apache là 64.3.40.151.
16018996349247480 và ngày hết hạn là 27/07/2006, của tên miền
.
Máy trạm có thể lưu tối đa là 300 cookies. Kích thước tối đa của cookie là 4kb.
Số cookie tối đa cho một tên miền là 20 cookie. Các máy chủ không mong máy trạm
vượt quá những giới hạn này. Khi giới hạn 300 cookie hoặc 20 cookie mỗi tên miền
của máy chủ bị vượt quá, máy trạm sẽ xoá cookie được sử dụng ít nhất.
I.2.5 Poxy
Proxy cung cấp cho người sử dụng truy xuất Internet những nghi thức đặc biệt
hoặc một tập những nghi thức thực thi trên dual_homed host hoặc basion host. Những
chương trình client của người sử dụng sẽ qua trung gian proxy server thay thế cho
server thật sự mà người sử dụng cần giao tiếp.
-16-


Proxy server cần xác định những yếu cầu từ client và quyết định đáp ứng hay
không đáp ứng, nếu yêu cầ được đáp ứng, proxy server sẽ kết nối với server thật thay
cho client và tiếp tục chuyển tiếp những yêu cầu từ client đến server, cũng như trả lời
server đến client. Vì vậy proxy server giống cầu nối trung gian giữa server và client.
I.2.6 Firewall
Một giải pháp dùng để bảo vệ một hệ thống mạng thường được sử dụng là bức
tường lửa - Firewall (hoạt động dựa trên gói IP do đó kiểm soát việc truy nhập của
máy người sử dụng). Nó có vai trò như là lớp rào chắn bên ngoài một hệ thống mạng,
vì chức năng chính của firewall là kiểm soát luồng thông tin giữa các máy tính. Có thể
xem firewall như một bộ lọc thông tin, nó xác định và cho phép một máy tính này có

được truy xuất đến một máy tính khác hay không, hay một mạng này có được truy
xuất đến mạng kia hay không.
Người ta thường dùng firewall vào mục đích:
- 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.
I.3 GIỚI THIỆU SƠ LƯỢC VỀ CÁC KĨ THUẬT TẤN CÔNG ỨNG DỤNG
WEB
I.3.1 Kiểm soát truy cập Web(Web Access Control)
Thâm nhập hệ thống qua cửa sau (Back door) :Trong quá trình thiết kế ứng
dụng, những người phát triển ứng dụng có thể cài một “cửa sau” (back door) để sau
này có thể thâm nhập vào hệ thống một cách dễ dàng.
I.3.2 Chiếm hữu phiên làm việc(Session Mangement)
I.3.2.1 Ấn định phiên làm việc (Session Fixation)
Là kĩ thuật tấn công cho phép hacker mạo danh người dùng hợp lệ bằng cách
gửi một session ID hợp lệ đến người dùng, sau khi người dùng đăng nhập vào hệ
thống thành công, hacker sẽ dùng lại session ID đó và nghiễm nhiên trở thành người
dùng hợp lệ.
I.3.2.2 Đánh cắp phiên làm việc (Session Hijacking)
Là kĩ thuật tấn công cho phép hacker mạodanhngười dùng hợp lệ sau khi nạn
nhân đã đăng nhập vào hệ thống bằng cách giải mã session ID của họ được lưu trữ
trong cookie hay tham số URL, biến ẩn của form.
-17-


I.3.2.3 Lợi dụng các thiếu sót trong việc kiểm tra dữ liệu nhâp hợp lệ (Input
validation)
Hacker lợidụng những ô nhập dữ liệu để gửi đi một đoạn mã bất kì khiến cho
hệ thống phải thực thi đoạn lệnh đó hay bị phá vỡ hoàn toàn.
I.3.2.3.1 Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt

(Client-Side validation)
Do ngôn ngữ phía trình duyệt ( JavaScript, VBScript..) đuợc thực thi trên trình
duyệt nên hacker có thể sửa đổi mã nguồn để có thể vô hiệu hóa sự kiểm tra.
I.3.2.3.2 Tràn bộ đệm (Buffer OverFlow)
Một khối lượng dữ liệu được gửi cho ứng dụng vượt quá lượng dữ liệu được
cấp phát khiến cho ứng dụng không thực thi được câu lệnh dự định kế tiếp mà thay
vào đó phải thực thi một đoạn mã bất kì do hacker đưa vào hệ thống. Nghiêm trọng
hơn nếu ứng dụng được cấu hình để thực thi với quyền root trên hệ thống.
I.3 SƠ LƯỢC VỀ QUÁ TRÌNH TẤN CÔNG CỦA HACKER
I.3.1 Các giai đoạn tấn công
Quá trình tấn công của một hacker có thể được khái quát qua 3 giai đoạn:
- Thu thập thông tin.
- Phân tích và hành động.
- Dừng và xoá dấu vết.
FootPrinting
(In dấu ấn)

Pilfering

Creating

(Khai thác hệ thống)

Backdoors (Tạo
cổng hậu)

Scanning

Privilege Escalation


Covering Tracks

(Quét mạng)

(Nâng quyền hệ thống)

(Xoá dấu vết)

Enumeration

Gaining Access

(Điểm danh mạng)

(Đột nhập hệ thống)

Hình 1.3 Quá trình tấn công của hacker

-18-


* Giai đoạn 1: Thu thập thông tin (Trước khi 1 hacker bắt đầu làm công việc, 3
yếu tố cần thiết phải được làm đầy đủ: FootPrinting, Scanning, Enumeration).
- FootPrinting (In dấu ấn - thu thập thông tin): Là bước mà kẻ tấn công thâu
tóm càng nhiều thông tin càng tốt về đối tượng, người dùng, doanh nghiệp, các chi
nhánh của công ty, máy chủ,… bao gồm các chi tiết Domain Name, Địa chỉ IP,
Networking Prototcols, thông tin về người quản trị,…
Đây là một bước quan trọng: Cho hacker nhiều thông tin, đôi khi với những
thông tin này hacker đã có thể làm chủ hệ thống.
Công cụ hỗ trợ: Nslookup, Smart Whois, UseNet, Google Earth, Search engines

(công cụ tìm kiếm), http:// www. archive. org
- Sanning (Quét thăm dò mạng): Phần lớn thông tin quan trọng từ server có
được từ bước này. Xác định hệ điều hành, xác định hệ thống có đang chạy không, tìm
hiểu các dịch vụ đang chạy hay đang lắng nghe, tìm hiểu các lỗ hổng, kiểm tra các
cổng, xác định các dịch vụ sử dụng giao thức TCP và UDP,...
Công cụ hổ trợ : LANGuard (www.Gfi.com), xScan, NetScanTools (http:
//www.nwpsw ), iNetTools (http ://www.wildpackets.com), Nmap (http: //www
.isecuse .org/nmap).
- Enumeration (Điểm danh mạng - liệt kê tìm lỗ hổng): Đến đây, các attacker
bắt đầu kiểm soát server sơ bộ. Bước này là tìm kiếm những tài nguyên được bảo vệ
kém, hoặc tài khoản người dùng mà có thể sử dụng để xâm nhập, bao gồm các mật
khẩu mặc định, các script và dịch vụ mặc định. Rất nhiều người quản trị mạng không
biết đến hoặc không sửa đổi lại các giá trị này của thiết bị.
Công cụ hỗ trợ: DumpSec, NbtScan, SuperScan, NetviewX, UserInfo,…
* Giai đoạn 2: Phân tích và hành động
- Gaining Access (Đột nhập hệ thống): Hacker sẽ tìm cách truy cập vào mạng
bằng những thông tin có được ở ba bước trên. Phương pháp được sử dụng ở đây có thể
là tấn công vào lỗi tràn bộ đệm, lấy và giải mã file password, hay brute force (kiểm tra
tất cả các trường hợp) password, đột nhập qua các cổng mở,…
Công cụ hỗ trợ: Password eavesdropping, Tcpdump, L0phtcrack, NAT,
Pwdump2 (NT), Remote Buffer Overflows,Brute-force password attacks,…
- Privilege Escalation (Nâng quyền hệ thống): Trong trường hợp hacker xâm
nhập đựợc vào mạng với một tài khoản nào đó, thì họ sẽ tìm cách kiểm soát toàn bộ hệ
-19-


thống. Hacker sẽ tìm cách crack password của admin, hoặc sử dụng lỗ hổng để leo
thang đặc quyền. Kẻ xâm nhập có thể truy cập vào các files hay folder dữ liệu mà tài
khoản người sử dụng ban đầu không được cho phép truy cập. Khi hacker đạt được
mức độ quyền truy cập đủ cao, họ có thể cài đặt phần mềm như là Backdoors và

Trojan horses, cũng như cho phép truy cập sâu hơn và thăm dò. Mục đích chung của
hacker là chiếm được quyền truy cập ở mức độ quản trị. Khi đã đạt được mục đích đó,
họ có toàn quyền điều khiển hệ thống mạng.
Công cụ hỗ trợ: L0phtcrack, Password cracking, BUG, Exploits. John và Riper
là hai chương trình crack password rất hay được sử dụng. Có thể sử dụng Sniffer để
bắt các gói tin, từ đó phân tích tìm ra mật khẩu.
- Pilfering (Khai thác hệ thống): Thông tin lấy từ bước trên đủ để hacker định vị
server và điều khiển server. Nếu bước này không thành công, hãy đến bước DoS
(Denial of Service).
Công cụ hỗ trợ: Rhost, Configuration files, Registry, Telnet, Ftp,…
* Giai đoạn 3: Dừng và xoá dấu vết
- Creating Backdoors (Tạo cổng hậu): Để chuẩn bị cho lần xâm nhập tiếp theo
được dễ dàng hơn. Hacker để lại Backdoors, tức là một cơ chế cho phép hacker truy
nhập trở lại bằng con đường bí mật không phải tốn nhiều công sức khai phá, bằng việc
cài đặt Trojan hay tạo user mới.
Công cụ hỗ trợ: Ở đây là các loại Trojan, keylog, creat rogue user accounts,
schedule batch jobs, replace apps with Trojan. VNC, BO2K, …
- Covering Tracks (Xoá dấu vết): Sau khi đã có những thông tin cần thiết,
hacker tìm cách xoá dấu vết, xoá các file LOG của hệ điều hành (vì hệ thống luôn ghi
nhận những hành động của người dùng) làm cho người quản lý không nhận ra hệ
thống đã bị xâm nhập hoặc có biết cũng không tìm ra kẻ xâm nhập là ai.
Công cụ hỗ trợ: Clear logs, Zap, Event log GUI, rootkits, file streaming, ...
I.3.2 Khảo sát ứng dụng Web
Khi phạm vi ứng dụng của các Web application ngày càng phổ biến thì khả
năng xuất hiện lỗi và bị tấn công càng cao. Trong các lĩnh vực hacking, hack Web
application luôn là một công việc được hacker nhắm đến nhằm mục đích phục vụ một
yêu cầu nào đó của họ hay để phá hoại.

-20-



Trước hết hacker tiến hành thu thập thông tin ở mức trên về hạ tầng của mục
tiêu. Thu thập một số thông tin quan trọng như có bao nhiêu server, mô hình của các
Web server, các client nào sẽ tương tác với ứng dụng Web, kiểu giao tiếp thông tin
(transport) và thông qua các cổng (port) nào, những site liên quan đến việc thực hiện
chức năng của site mục tiêu, ...
 Tiếp đó hacker khảo sát ứng dụng Web:
- Một trong những phương pháp khảo sát khá phổ biến từ trước đến giờ, đó là
xem mã nguồn và lợi dụng các lỗi cho phép xem mã nguồn các ngôn ngữ Web thông
dụng hiện nay như Active Server Pages (ASP), Common Gateway Interface (CGI),
ColdFusion Server (CFM), Hypertext Preprocessor (PHP).
- Sử dụng một số phép thử như thêm dấu ’ vào các url theo khuôn dạng truyền
vào giá trị rất phổ biến, đưa vào những mẫu thử cơ bản của form xác thực đăng nhập
để khảo sát các lỗi SQL Injection.
- Đưa vào các thông tin “lạ” ở các form ứng dụng Web hay trên url để xem các
thông điệp chuyển xuống cho người dùng khi ứng dụng có lỗi. Các thông báo lỗi thông
thường tiết lộ các chi tiết kỹ thuật có thể cho phép kẻ tấn công biết được điểm yếu của
hệ thống.
- Sử dụng các công cụ để đưa các trang Web mục tiêu vào dò tìm các lỗi của
người phát triển ứng dụng để từ đó xây dựng nên kịch bản tấn công và chọn cách tấn
công cụ thể.
- Tìm hiểu sâu về các chức năng của ứng dụng Web. Tìm hiểu cách thực hiện
của các phần trong ứng dụng, đặc biệt như các order input, confirmation, order
tracking.
- Tìm hiểu luồng di chuyển của thông tin. Các thông tin tương tác giữa client và
server, các thông tin tương tác với database. Hiện nay việc viết mã để thực hiện việc
giao tiếp thông tin thường phải đảm bảo được tính hiệu quả (nhanh) và bảo mật (có thể
sẽ chậm hơn). Thường thì tính hiệu quả được ưu tiên hơn do đó có thể sẽ phát sinh lỗi
trong quá trình đó và giúp hacker có thể lợi dụng các lỗi để đoạt quyền điều khiển hệ
thống.


-21-


I.3.3 Tấn công mục tiêu
Việc thu thập thông tin là vấn đề quan trọng cho việc tấn công vào một hệ
thống máy mục tiêu. Cho dù hacker tấn công theo phương diện phần cứng hay qua ứng
dụng thì việc thu thập vẫn là cần thiết.
Sau khi đã khảo sát và thu thập thông tin mục tiêu, hacker bắt đầu thực hiện tấn
công nhằm xâm nhập vào hệ thống lấy thông tin, đưa thông tin xấu vào, dành quyền
kiểm soát,… Có thể trong những bước đã nêu hacker không cần phải đi qua theo thứ
tự hay qua hết, nhưng việc nắm rõ thông tin của máy mục tiêu luôn là điều kiện tiên
quyết để dẫn đến thành công trong việc tấn công. Tùy vào thông tin thu thập được mà
hacker sẽ quyết định tấn công theo kỹ thuật nào, xây dựng một kịch bản tấn công phù
hợp.
 Một số kịch bản tấn công:
- Tấn công đồng loạt vào các trang tin điện tử thuộc Chính phủ, thành phố, bộ, sở
ban ngành,… làm thay đổi nội dung, đưa thông tin sai lệch,…
- Tấn công vào các ứng dụng Web mua bán, giao dịch trực tuyến để đánh cắp
thông tin cá nhân, thẻ tín dụng,…
- Tấn công ứng dụng Web, đặt mã độc tại trang Web, sử dụng máy chủ bị lỗi để
thực hiện hành vi tấn công khác.
 Mục đích tấn công cơ bản của hacker trên các ứng dụng Web như sau:
- Tấn công với mục đích chính trị (tấn công các trang tin điện tử thuộc chính phủ,
thành phố, các sở ban ngành,…).
- Tấn công với mục đích lợi nhuận (các trang thương mại điện tử, tài chính, ngân
hàng, các doanh nghiệp, …).
- Tấn công với mục đích cá nhân.
 Hậu quả tấn công của hacker trên các ứng dụng Web:
- Dù tấn công dưới bất kỳ với mục đích gì thì hậu quả ảnh hưởng đều rất đáng

kể, thiệt hại to lớn về uy tín, kinh tế, gây thiệt hại cho người dùng mạng, bị
đánh cắp thông tin, có thể bị hacker lợi dụng để tấn công một tổ chức khác, tận
dụng phát tán lừa đảo,…
- Nếu không thành công trong việc xâm nhập bằng các kỹ thuật phổ biến, thì
Dos là cách thức mà hacker thường lựa chọn để làm cho hệ thống không thể
hoạt động được.
-22-


Do đó, việc bảo mật cho một hệ thống cần đòi hỏi sự kết hợp không chỉ của
riêng nhà quản trị hệ thống mà còn của nhà thiết kế ứng dụng và sự hợp tác của cả
những khách hàng sử dụng ứng dụng.
I.4 SƠ LƯỢC VỀ CÁC KĨ THUẬT TẤN CÔNG ỨNG DỤNG WEB
I.4.1 Kiểm soát truy cập web (Web Access Control)
Thâm nhập hệ thống qua cửa sau (Back door) : Trong quá trình thiết kế ứng
dụng, những người phát triển ứng dụng có thể cài một “cửa sau” (back door) để sau
này có thể thâm nhập vào hệ thống một cách dễ dàng.
I.4.2 Chiếm hữu phiên làm việc (Session Mangement)
I.4.2.1 Ấn định phiên làm việc (Session Fixation)
Là kĩ thuật tấn công cho phép hacker mạo danh người dùng hợp lệ bằng cách
gửi một session ID hợp lệ đến người dùng, sau khi người dùng đăng nhập vào hệ
thống thành công, hacker sẽ dùng lại session ID đó và nghiễm nhiên trở thành người
dùng hợp lệ.
I.4.2.2 Đánh cắp phiên làm việc (Session Hijacking)
Là kĩ thuật tấn công cho phép hacker mạodanhngười dùng hợp lệ sau khi nạn
nhân đã đăng nhập vào hệ thống bằng cách giải mã session ID của họ được lưu trữ
trong cookie hay tham số URL, biến ẩn của form.
I.4.3 Lợi dụng các thiếu sót trong việc kiểm tra dữ liệu nhập hợp lệ (Input
validation)
Hacker lợidụng những ô nhập dữ liệu để gửi đi một đoạn mã bất kì khiến cho

hệ thống phải thực thi đoạn lệnh đó hay bị phá vỡ hoàn toàn.
I.4.3.1 Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt
(Client-Side validation)
Do ngôn ngữ phía trình duyệt ( JavaScript, VBScript..) đuợc thực thi trên trình
duyệt nên hacker có thể sửa đổi mã nguồn để có thể vô hiệu hóa sự kiểm tra.
I.4.3.2 Tràn bộ đệm (Buffer OverFlow)
Một khối lượng dữ liệu được gửi cho ứng dụng vượt quá lượng dữ liệu được
cấp phát khiến cho ứng dụng không thực thi được câu lệnh dự định kế tiếp mà thay
vào đó phải thực thi một đoạn mã bất kì do hacker đưa vào hệ thống. Nghiêm trọng
hơn nếu ứng dụng được cấu hình để thực thi với quyền root trên hệ thống.
I.4.3.3 Mã hoá URL (URL Encoding)
-23-


Lợi dụng chuẩn mã hóa những kí tựđặc biệt trên URL mà hacker sẽ mã hoá tự
động những kí tự bất hợp lệ-những kí tự bị kiểm tra bằng ngôn ngữ kịch bản-để vượt
qua vòng kiểm soát này.
I.4.3.4 Kí tự Meta (Meta-characters)
Sử dụng những kí tựđặc biệt ( nói rõ hơn trong phần phụ lục) hacker có thể
chèn thêm vào dữ liệu gửi những kí tự trong chuỗi câu lệnh như <script> trong kĩ thuật
XSS, ‘ -- trong SQL….để thực thi câu lệnh.
I.4.3.5 Vượt qua đường dẫn (Path Traversal):
Là phương pháp lợi dụng đường dẫn truy xuất một tập tin trên URL để trả kết
quả về cho trình duyệt mà hacker có thể lấy được nội dung tập tin bất kì trên hệ thống.
I.4.3.6 Chèn mã lệnh thực thi trên trình duyệt nạn nhân (Cross- Site Scripting):
Đây là kĩ thuật tấn công chủ yếu nhằm vào thông tin trên máy tính của người
dùng hơn là vào hệ thống máy chủ. Bằng cách thêm một đoạn mã bất kì ( thường được
lập trình bằng ngôn ngữ kịch bản như JavaScript, VBScript…), hacker có thể thực
hiện việc đánh cắp thông tin quan trọng như cookie để từ đó trở thành người dùng hợp
lệ của ứng dụng…dựa trên những thông tin đánh cắp này. Cross-Site scripting cũng là

một kiểu tấn công “session hijacking”.
I.4.3.7 Thêm câu lệnh hệ thống (OS Command Injection):
Khả năng thực thi được những câu lệnh hệ thống hay những đoạn mã được
them vào trong những tham số mà không có sự kiểm tra chặt chẽ như tham số của
form, cookies, yêu cầu HTTP Header, và những dữ liệu nguy hiểm trong những tập tin
được đưa lên trình chủ.
Thành công trong kĩ thuật này giúp hacker có thể thực thi được những câu lệnh
hệ thống với cùng quyền của trình chủ.
I.4.3.8 Chèn câu truy vấn SQL (SQL Injection)
Trong lập trình với cơ sở dữ liệu, người lập trình đã sai sót trong vấn đề kiểm
tra giá trị nhập vào để từ đó hacker lợi dụng thêm vào những câu truy vấn hay những
giá trị không hợp lệ để dễ dàng đăng nhập vào hệ thống.
I.4.3.9 Ngôn ngữ phía máy chủ (Server side includes)
Là khả năng thêm vào những câu lệnh thuộc hệ thống như nhúng file (include
file), truy xuất cơ sở dữ liệu (jdbc)…khiến cho hacker có cơ hội truy xuất đến file, cơ
sở dữ liệu…mà bình thường không thể xem được trên Web site.
-24-


I.4.3.10. Kí tự rỗng (Null Characters)
Lợi dụng chuỗi kí tự thường kết thúc bằng \0 mà hacker thường thêm vào để
đánh lừa ứng dụng vì với những ứng dụng sử dụng chương trình cgi như C++ thì C++
cho rằng \0 là dấu kết thúc chuỗi.
Ví dụ:
Hacker thêm chuỗi sau:
Ô nhập: đề tài thứ nhất\0<script> alert(document.cookie)</script> nếu ứng
dụng sử dụng chương trình C++ để kiểm tra tính đúng đắn của chuỗi thì chuỗi trên hợp
lệ do C++ sẽ nhân biết “\0” là kết thúc chuỗi nên không kiểm tra đoạn sau..
I.4.3.11 Thao tác trên tham số truyền (Paramet manipulation)
Những thông tin trao đổi giữa trình chủ và trình duyệt được lưu trữ trong những

biến như biến trên URL, biến ẩn form, cookie…Bởi vì việc kiểm soát biến chưa được
quan tâm đúng mức nên hacker có thể lợi dụng sửa đổi giá trị biến để đánh cắp phiên
làm việc của người dùng hay thay đổi giá trị một món hàng….
I.5 Để lộ thông tin (informational)
Những tập tin và ứng dụng trên hệ thống chứa những thông tin quan trọng như
mã nguồn một trang Web hay tập tin chứa mật khẩu của người dùng trên hệ thống luôn
là mục tiêu của hacker. Ngoài ra những lời chú thích trong mã nguốn cũng là nguồn
thông tin hữu ích cho hacker.
Hacker sử dụng trả lời HTTP từ hệ thống để xác định một tập tin hay ứng dụng có tồn
tại hay không.
Ví dụ :
• HTTP 200 : tập tin tồn tại
• HTTP 404: tập tin không tồn tại
I.6 Từ chối dich vụ (Denial of service (DoS)
Một khối lượng lớn yêu cầu được gửi cho ứng dụng trong một khoảng thời gian
nhất định khiến hệ thống không đáp ứng kịp yêu cầu dẫn đến hệ thống bị phá vỡ. Vì
khuôn khổ và thời gian của luận văn là có hạn nên luận văn chỉ thực hiện tìm hiểu một
số kĩ thuật phổ biến và khả năng phá hoại một hệ thống mạng với mức độ cao. Và
trong các chương ở phần thứ hai, luận văn sẽ trình bày kĩ hơn từng kĩ thuật sau :
• Thao tác trên tham số truyền
• Chèn mã lệnh thực thi trên trình duyệt
-25-


×