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 các 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 cú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 an toàn dữ liệu cho các máy tính kết nối vào mạng internet. Vì 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 dung 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 đảm bảo ngăn chặn toàn bộ vì công nghệ Web đang phát triển nhanh chóng 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 thù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.
Trang 1 Giảng viên hướng dẫn: Lê Kim Trọng
Sinh viên thực hiện: Lê Anh Tuấn.
Lớp: CCMM07A.
Đà Nẵng: Tháng 6 Năm 2015
Trang 2LỜI NÓI ĐẦ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ớithiệ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ịchtrự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ềungười tấn công với các mục đích khách nhau Đôi khi cũng chỉ đơn giản là để thử tàihoặ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 các dịch vụ tấn công trên internet cũng tăng theo cấp số nhân Trong khi cácphương tiện thông tin đại cúng ngày càng nhắc nhiều đên những khả năng truy cậpthô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 an toàn dữ liệu cho các máy tính kết nối vào mạng internet
Vì 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ạnginternet 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 dung 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 đảm bảongăn chặn toàn bộ vì công nghệ Web đang phát triển nhanh chóng nên dẫn đến nhiềukhuyế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 thùy vào những sai sót của nhà quản trị hệ thống cũng như của nhữngngườ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ỏngbả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 các ư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ư: XSS, Session,DOS
- Tìm hiểu và nghiên cứu cụ thể kỹ thuật tấn công chèn câu truy vấn SQLInjection và các giải pháp phòng ngừa
- Xây dựng ứng dụng web demo thể hiện cách tấn công của kỹ thuật SQLInjection và đưa ra giải pháp fix các lỗ hổng trong chưa trình
- Kết quả thực hiện: nắm rõ bản chất và cách tấn công vào ứng dụng web, ápdụ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
Trang 3web sẽ triển khai.
Đố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
Phương pháp nghiên cứu
- Tổng hợp tìm hiểu, nghiên cứu 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áccách tấn công của SQL Ijection
Ý 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 đượchacker 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êncứ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ướcnguy cơ tấn công của kẻ xấu
Bố cục của đồ án
Báo cáo được chia làm 3 chương
- Chương I: GIỚI THIỆU TỔNG QUAN VỀ AN NINH MẠNG
- Chương II: GIỚI THIỆU VỀ WEB VÀ MỘT SỐ KỸ THUẬT TẤN CÔNG
- Chương III: MÔ PHỎNG MỘT SỐ KỸ THUẬT TẤN CÔNG
Trang 4MỤC LỤC
LỜI NÓI ĐẦU 2
MỤC LỤC 4
DANH MỤC HÌNH ẢNH 5
CHƯƠNG I 6
GIỚI THIỆU TỔNG QUAN VỀ AN NINH MẠNG 6
1 Tình hình an ninh mạng thế giới 6
2 Tình hình an ninh mạng việt nam 6
CHƯƠNG II 8
GIỚI THIỆU VỀ WEB VÀ MỘT SỐ KỸ THUẬT TẤN CÔNG ỨNG DỤNG WEB 8
1 TỔNG QUAN VỀ WEB 8
1.1.Khái niệm ứng dụng web 8
1.2.Các khái niệm thuật ngữ liên quan 10
1.2.1 Hacker 10
1.2.2 Giao thức HTTP và HTTPS 10
1.2.3 Session 12
1.2.4 Cookie 12
1.2.5 Proxy 12
1.3.Một số ký thuật tấn công của hacker vào lỗ hỏng trên trang Web 13
1.3.1 Tấn công chèn câu truy vấn SQL Injection 13
1.3.2 Chèn mã lệnh thực thi trên trình huyệt Cross-Site Scriptin 15
1.3.3 Chiếm hữu phiên làm việc 16
1.3.4 Từ chối dịch vụ (DOS) 18
1.3.5 Một số kỹ thuật tấn công khác 20
CHƯƠNG III MÔ PHỎNG MỘT SỐ KỸ THUẬT TẤN CÔNG ỨNG DỤNG WEB 22
KẾT LUẬN 30
TÀI LIỆU THAM KHẢO 31
Trang 5DANH MỤC HÌNH ẢNH
Hình 1.1: một số ứng dụng web có kiến trúc 8
Hình 1.2: mô hình hoạt động của một ứng dụng web 9
Hình 1.3: Quá trình tấn công người dùng bằng kỹ thuật ấn định session 17
Hình 1.4 Cơ chế thiết lập kết nối trước khi truyền số liệu 19
Hình 1.5 Tấn công DoS truyền thống 20
Trang 6CHƯƠNG I GIỚI THIỆU TỔNG QUAN VỀ AN NINH MẠNG
Trong bối cảnh tiến trình hội nhập, vấn đề an ninh mạng và bảo mật dữ liệuđang trở nên rất được quan tâm Khi cơ sở hạ tầng và các công nghệ mạng đã đáp ứngtốt các yêu cầu về băng thông, chất lượng dịch vụ, đồng thời thực trạng tấn công trênmạng đang ngày một gia tăng thì vấn đề bảo mật càng được chú trọng hơn Không chỉcác nhà cung cấp dịch vụ Internet, các cơ quan chính phủ mà các doanh nghiệp, tổchức cũng có ý thức hơn về an toàn thông tin.Bảo mật hay an toàn thông tin là mức độbảo vệ thông tin trước các mối đe dọa về “thông tin lộ”, “thông tin không còn toànvẹn” và “thông tin không sẵn sàng”.Bảo mật hay an toàn thông tin là mức độ bảo vệchống lại các nguy cơ về mất an toàn thông tin như “nguy hiểm”, “thiệt hại”, “mấtmát” và các tội phạm khác Bảo mật như là hình thức về mức độ bảo vệ thông tin baogồm “cấu trúc” và “quá trình xử lý” để nâng cao bảo mật.Tổ chức Institute for Securityand Open Methodologies định nghĩa “Security là hình thức bảo vệ, nơi tách biệt giữatài nguyên và những mối đe dọa”
2 Tình hình an ninh mạng việt nam
Theo Đại tá Nguyễn Văn Thỉnh, tình hình an toàn, an ninh mạng tại Việt Namtiếp tục diễn biến phức tạp, tồn tại nhiều cơ sở gây nguy cơ bị tấn công, phá hoại hạtầng mạng thông tin, ảnh hưởng tới an ninh quốc gia
Báo cáo của hãng bảo mật Kaspersky và Symantec cho thấy, Việt Nam đứngthứ 3 (3,96%) sau Nga (40%) và Ấn Độ (8%) về số dùng di động bị mã độc tấn côngnhiều nhất trên thế giới, thứ 6 trên thế giới về số lượng địa chỉ IP trong nước đượcdùng trong các mạng máy tính ma tấn công nước khác; thứ 7 trên thế giới về phát tán
Trang 7tin nhắn rác (giảm 1 bậc so tháng 11/2013) và đứng thứ 12 trên thế giới về các hoạtđộng tấn công mạng.
Đáng chú ý là hoạt động tấn công mạng nhằm vào Việt Nam gia tăng về sốlượng, gây nguy cơ bị kiểm soát, khống chế hệ thống thông tin Tin tặc nước ngoàithường xuyên lợi dụng các điểm yếu về an ninh mạng của hệ thống thông tin điện tử,trang thông tin điện tử của Việt Nam để tấn công, xâm nhập, chiếm quyền điều khiển,chỉnh sửa nội dung
Trang 8CHƯƠNG II GIỚI THIỆU VỀ WEB VÀ MỘT SỐ KỸ THUẬT TẤN CÔNG
ỨNG DỤNG WEB
1 TỔNG QUAN VỀ WEB
1.1 Khái niệm ứng dụng web.
Ứng dụng web là một ứng dụng củ, khách sử dụng giao thức HTTP để tươngtá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 vaitrò đại lý người dung hoạt động như một trình duyệt tự động Người dung gửi và nhậncác thông tin từ trình chủ thông qua việc việc vào cac 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-mail…
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ấtnhanh Trước đây ứng dụng web thường được xây dựng bằng CGI (Common GatewayInterface) được chạy trên các trình chủ web và có thể kết nối vào các sơ sở dữ liệu đơngiản trên cùng máy chủ Ngày nay, ứng dung web thường được viết bằng Java và chạytrê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 1.1: một số ứng dụng web có kiến trúc
Trang 9 Lớp trình bày: lớp này có nhiệm vụ hiển thị dữ liệu cho người dung,ngoài ra còn có them các ứng dụng tạo bố cục cho trang web.
Lớp ứng dụng: là nơi xử lý các ứng dụng web Nó sẽ xử lý thông tinngười dung yêu cầu, đưa ra quyết định, gữi kết quả đến “lớp trìnhbà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ìnhchủ 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áchnhiệm quản lý các file dữ liệu và quyền sử dụng
Hình 1.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 duyệt: Internet Explorer, Netscap Navigator
- Trình chủ: Apache, IIS…
- Hệ quản trị cơ sở dữ liệu: SQL, Server, MySQL…
Bên cạnh đó, một giải pháp dung để 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
Trang 10vì 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 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 đượctruy xuất đến mạng kia hay không.
Người ta thường dung 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 cập vào trong
Kiểm soát địa chỉ truy nhập, cấm địa chỉ truy nhập
1.2 Các khái niệm thuật ngữ liên quan.
1.2.1 Hacker.
Hacker là một thuật ngữ dung để chỉ những chuyên gia về máy tính Hackerkhô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 và các ngôn ngữ lập trình Họ sử dụng kiến thức củamì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ỉ dung lại việc phát hiện và thông báo lỗi tìm được cho nhữngnhà bảo mật hay người phát triển chương trình, họ được xem như là WhileHat (hacker
mũ 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ằmmục đích phá hoại hay mưu lợi riêng, những người này được xem như là BlackHat(Hacker mũ đen)
1.2.2 Giao thức HTTP và HTTPS.
HTTP là chữ viết tắt từ HyperText Transfer protocol (giao thức truyền tải siêuvăn bản) Nó là giao thức cơ bản màm World Wide Web sử dụng HTTP được xácđịnh cách các thông thiệp (các file văn bản, hình ảnh đồ họa, â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áctrình duyệt web phải làm để đáp ứng các câu lệnh Khi gõ một địa chỉ Web URL vàotrì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à 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ìnhduyệt Web để người dùng có thể xem một trang Web đang hiện diện trên internet.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 choInternet)
HTTP header là phần đầu của thông tin mà 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êucầu) còn trình chủ gữi cho trình là HTTP responses (trả lời) Thông thường một HTTPheader gồm nhiều dòng, mỗi dòng dựa trên tham số và giá trị Một số có thể dùng
Trang 11trong cả header yêu cầu và header trả lời, còn số khác chỉ được dùng cho riêng từngloại.
GET /tintic/homay.áp HTTP/1.1 Accept: */*
Accept-Language: en-ú Connection: Keep-Alive Host: localhost
Tiếp theo là các tham số, chẳng hạn như:
Accept Laguage: cho biết ngôn ngữ dùng trong WEB
Host: cho biết địa chỉ của máy chủ
Referrer: 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,13January 2015 15:46:53 Content-Length: 2291
Content-Type: text/html Set-Cookie:
Trang 12thá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 (Securetu HTTP), là một sự kết hợp giữa giao thức bảo mật SSL hayTLS cho phép trao đổi thông tin một cách bảo mật trên internet
1.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à HTTPkhô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âykhó khan cho một số ứng dụng Web, bởi vì trình chủ không biết được trước đó trìnhduyệ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ức thựcphiên làm việc một số trình chủ sẽ cung cấp một SessionID cho người dung khi họxem trang web trên trình chủ
Để duy trì phiên làm việc thì SessionID 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ự độnggiải phóng phiên làm việc để khôi phục tài nguyên của hệ thống
1.2.5 Proxy.
Proxy cung cấp cho người sử dụng truy xuất internet những nghi thức đặt biệthoặc một tập những nghi thức thực thi trên dual_homed hst hoặc basion host, thế choserver thật sự mà người sử dụng cần giao tiếp
1.3 Một số ký thuật tấn công của hacker vào lỗ hỏng trên trang Web.
Trang 131.3.1 Tấn công chèn câu truy vấn SQL Injection.
SQL Injection là gì?
Khi triển khai các ứng dụng web trên internet, nhiều người vẫn nghĩ rằngviệc đảm bảo an toàn, bảo mật nhằm giảm thiểu tối đa khả năng bị tấncông từ các tin tặc chỉ đơn thuần tập trung vào các vấn đề như chọn hệ điềuhành, hệ quản trị cơ sở dữ liệu…mà quên mất rằng ngay cả bản thân ứngdụng chạy trên đó cũng tiềm ẩn một lỗ hổng rất lớn một trong số các lổhổng này đó là SQL Injection Tại Việt Nam, đã qua thời các quản trịwebsite lơ là việc quét virut, cập nhật các bản vá lỗi từ các phần mềm hệthống, nhưng việc chăm sóc các lỗi của các ứng dụng lại rất ít được quantâm Đó là lý do vì sao trong thời gian qua, không ít các website tại ViệtNam bị tấn công và đà số đều là lỗi SQL Injection Vậy SQL Injection là:SQL Injection là kĩ thuật cho phép những kẻ tấn công lợi dụng lỗ hổngtrong việc kiểm tra dữ liệu đăng nhập trong các ứng dụng web và thôngbáo lỗi của hệ quản trị cơ sở dử liệu để tiêm vào (Injection) và thi hành cáccâu lệnh SQL bất hợp pháp
Các dạng tấn công SQL Injection
1.3.1.1 Dạng tấn công vượt qua kiểm tra đăng nhập
Với dạng tấn công này tin tặc có thể dễ dàng vượt qua các trang đăng nhậpnhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng dụngWeb
Xét ví dụ diển hình, thông thường để cho phép người dùng truy cập vào cáctrang web được bảo mật, hệ thống thường xây dựng trang đăng nhâpj để yêucầu người dùng nhập thông tin về tên đăng nhập và mật khẩu Sau khi ngườidùng nhập thông tin vào, hệ thống sẽ kiểm tra tên đăng nhập và mật khẩu vóhợp lệ hay không để quyết định cho phép hay từ chối thực hiện tiếp
Trong trường hợp ngày người ta có thể dung hai trang, một trang HTML
để hiển thị form nhập lieu và một trang ASP dùng để xử lỹ thông tin nhập từphía người dung
<from action=”ExecLogin.asp”method=”post”>
Username: <input type=”text” name =”fUSRNAME”<>br>
Password: <input type=”password” name=”fPASSWORD”><br>
<input type=”submit”>
Trang 14“WHERE USR_NAME=’ “& vPassword & “ ‘ “Set objRS = Server.CreateObject(“ADODB.Recordset”)objRS.Open strSQL, “DSN=…”
If (objRS.EFO) ThenResponse.Write “Invalid login.”
ElseResponse.Write “You are logged in as “ &
objRS(“USR_NAME”)End If
Thoạt nhìn, đoạn mã trong trang execlogin.asp dường như không chưabất cứ một lỗr hổng về an toàn nào Người dùng không thể đăng nhập màkhông có tên đăng nhập và mật khẩu hợp lệ tuy nhiên đoạn mã này thực
sự không an toàn và là tiền đề cho một lỗi SQL injection Đặc biệt chổ sở
hở nằm ở chỗ dữ liệu nhập vào từ người dùng để xây dựng trực tiếp chocâu lệnh SQL Chính điều này cho phép những kẻ tấn công có thể điềukhiển câu truy vấn sẽ được thực hiện ví dụ, nếu người dùng nhập chuỗisau vào 2 ô nhập liệu username/password của trang login.html là: ‘OR’
‘=’ Lúc này, câu truy vẫn sẽ được thực hiện là: SELECT*FROMT_USERS WHERE USE_NAME=”OR”=”and USR_PASSWORD=”OR”=”Câu truy vẫn này hợp lệ và sẽ trả về tất cả các bản ghi T_USERS vàđoạn mã tiếp theo xử lý ngườ dùng đăng nhập bất hợp pháp này như làngười dùng đăng nhập hợp lệ
1.3.1.2 Dạng tấn công sử dụng câu lệnh SELECT
Trang 15Dạng tấn công này phức tạp hơn Để thực hiện được kiểu tấn công này,
kẻ tấn công phải có khả năng hiểu và lợi dụng các sơ hở trong các thôngbáo lỗi từ hệ thống để dò tìm các điểm yếu khởi đầu cho cuộc tấn công.Xét ví dụ rất thường gặp trong các website về tin tức Thông thường, sẽ
có một trang nhận ID của tin cần hiển thị rồi sau đó truy vẫn nội dung cótin của ID này
1.3.1.3 Dạng tấn công sử dụng câu lệnh INSERT
Thông thường các ứng dụng web cho phép người dùng đăng kí một tàikhoàn để tham gia Chức năng không thể thiếu là sau khi đăng kí thànhcông, người dùng có thẻ xem và hiệu chỉnh thông tin của mình SQLInjection có thể dùng khi hệ thống không kiểm tra tính hợp lệ câu thông tinnhập vào
1.3.1.4 Dạng tấn công sử dụng stored-procedures
Việc tấn cong bằng stored-procedures sẽ gây tác hại rất lớn nếu ứngdụng được thực thi với quyền quản trj hệ thống ‘sa’ Ví dụ, nếu người tathay đoạn mã tiêm vào dạng: ‘:EXEC xp_cmdshell’cmd.exe dir C:’ Lúcnày hệ thống sẽ được thực hiện liệt kê như mục ổ đĩa C:\ cài đặt server.Việc phá hoại liểu này tùy thuộc vào câu lệnh đằng sau cmd.exe
1.3.2 Chèn mã lệnh thực thi trên trình huyệt Cross-Site Scriptin.
1.3.2.1 Tấn công Cross-Site Scriptin
Cross-Site Scriptin (XSS) là một trong những kỹ thuật tấn công phổbiến, nó cũng là một trong những vấn đề bảo mật quan trọng đối với nhàphát triển Web và cả những người sữ dụng Web Bất kì mợ Website nàocho phép người sữ dụng đăng thông tin không có sự kiểm tra chặt chẽ cácđoạn mã nguy hiểm thì để có tiềm ẩn các lỗi XSS
Hacker sẽ lợi dụng sự kiểm tra lỏng lẻo từ ứng dụng và hiểu biết hạn chếcủa người dùng cũng như đánh vào sự tò mò của họ dẫn đến người dùngmất thông tin một cách dễ dàng Hacker thực hiện tấn công XSS bằng cáchchèn vào các website dộng (ASP, PHP, CGI,…) những thẻ HTML haynhững đoạn mã Scriptin nguy hiểm có thể gây hại cho người dùng khác.Thông thường hacker lợi dụng địa chỉ URL để đưa ra những liên kết làtác nhân kích hoạt những đoạn chương trình nguy hiểm được chèn vào,hầu hết được viết bằng Client-Site Scriptin như JavaScript, Jcript và cũng
có thể là các thẻ HTML, được thực thi trên chính trình duyệt của nạn nhân
Trang 16Đôi khi hacker cũng sử dụng kỹ thuật này để phá hoại các Websitenhưng đó vẫn chỉ tấn công vào bề mặt của website.
1.3.2.2 Phương pháp tấn công XSS truyền thống
Như đã biết, cookie là phần thông tin mà ứng dụng có thể lưu trên đĩacứng của người sử dụng Nhưng chỉ các ứng dụng thiết lập ra cookie thìmới có thể đọc nó Do đó chỉ khi người dùng đang trong phiên làm việccủa ứng dụng thì hacker mới có cơ hội đánh cắp cookie Công việc đầutiên của hacker là tìm rat rang đích để dụ người dùng đăng nhập sau khi đãtìm ra lỗ hổng ứng dụng trên đó
1.3.3 Chiếm hữu phiên làm việc.
1.3.3.1 Tổng quan về session ID
Như đã đề cập, session dùng để lưu trữ trạng thái làm việc giữa trìnhduyệt và trình chủ, session ID có thể được lưu trữ trong cookie hay nhúngvào địa chỉ URL hay trong biến ẩn form Mỗi kiểu lưu trữ đều có ưu vàkhuyết điểm, nhưng qua thực thế cookie vẫn là lựa chọn tốt nhất, và làphương pháp an toàn nhất
Thông thường, sau khi người dùng 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 khẩu tĩnh tạmthờ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 đcsession ID hợp lệ của người dùng để từ đó đột nhập vào phiên làm việc củahọ
XSS cũng là một cách tấn công có thể chiếm được session ID lưu trữtrong cookie Cách tấn công này gọi là “session hacking’
Tấn công vào một phiên làm việc thường được thực hiện theo 2 kiểuchính sau:
ẩn định phiên làm việc
đánh cắp phiên làm việc1.3.3.2 Ẩn định phiên làm việc
Trong kiểu tấn công ấn định một phiên làm việc, hacker ấn định sẵnsession ID cho nạn nhân trước khi họ đăng nhập vào hệ thống Sau đó,hacker sẽ sử dụng session ID này để bước vào phiên làm việc của nạn nhânđó