Dive into XSS

က်ေနာ္သတိထားမိသေလာက္ခုေနာက္ပိုင္း ဒီမွာ XSS ကအရမ္းေခတ္စားလာခဲ့တာကိုေတြ႕ရပါတယ္။ ခုေရးတဲ့ အေၾကာင္းအရာဟာ XSS အရမ္းက်ြမ္းေနလို႕ေရးတာ မဟုတ္သလို ဘာျဖစ္ခ်င္ေနမွန္းမသိတဲ့ တခ်ိဳ႕ေတြလဲ သိရေအာင္ ေဆာင္းပါးသေဘာမ်ိဳးေရးေပးတာျဖစ္ပါတယ္။ က်ေနာ္သိထားသေလာက္ပဲေရးတာျဖစ္တဲ့အတြက္ လိုအပ္တာေတြမွားေနတာေတြေတာ့ရွိမွာေပါ့။ မသိတဲ့သူအတြက္ အေထာက္ကူျဖစ္တယ္ဆိုရင္ပဲေက်နပ္တယ္။

XSS ဘာလဲ ဘယ္လဲ ? 

alert ထုတ္တာ XSS လို႕ထင္ေနရင္ေတာ့မွားမွာေပါ့ေနာ္။ အဲဒီ alert ေလးျပဖို႕ ဘယ္သူက bounty ေတြေပး ဘယ္သူက Top 10 ထဲထည့္မတုန္း ?  ဒီေတာ့ အက်ဥ္းခ်ဳပ္နဲနဲ ေဆြးေႏြးမယ္။

<form>
	form innerHTML
</form>

အထက္ပါ form ကို JS DOM နဲ႕ access လုပ္လို႕မရဘူးလား? (Reference)

ရတယ္။ ဒီေတာ့ innerHTML value ကို ေျပာင္းပစ္မယ္ဆိုရင္ေရာ ? ရတယ္။

Attribute value ေတြလဲရတယ္။

<form action="lolsec">
	LOL
</form>

ဒီေတာ့ Login form Hijacking ဆိုတာ XSS သာေပါက္ခဲ့ရင္ 😀

ေနာက္တစ္ခု Cookie

<?php
setcookie("lol","LOL cookie");
?>

ဒီလိုဆို browser cookie ထဲမွာ

JavaScipt နဲ႕ဆို

ဒီေတာ့ JS သာ run ရရင္ cookie ကရတယ္ httponly ဘာညာခဏထားထား။ XSS သာေပါက္ေနရင္ တို႕ဆီကို Request ေလးတစ္ေစာင္ ဒါမွမဟုတ္ redirect လုပ္ႏိုင္ေကာင္းပါရဲ႕။

ရွိပါေသးတယ္ အမ်ားၾကီး။ Exploitation Tools အေနနဲ႕ဆိုရင္ေတာ့ ဒီ ၂ ခုသိတယ္ ။

https://xenotix.in/

http://beefproject.com/

Self XSS

self xss က ဘယ္လိုမွ exploit လုပ္လို႕မရတာမ်ိဳးေတြကိုေျပာခ်င္တာ XSS ကို မ်ားေသာအားျဖင့္ Reflected , DOM, Stored စသျဖင့္ ၃ မ်ိဳးအဓိက ခြဲထားတယ္ဆိုေပမဲ့ က်ေနာ္ေတြ႕ရတာေတာ့ တျခားအမ်ားၾကီးေခၚေနၾကတဲ့ XSS ေတြက်န္ေနေသးတယ္။ Example RPO XSS , Mutation XSS , Shibuya (or) Path XSS , UXSS , Blind XSS ,etc…

ခုဆိုရင္ UXSS က SOP ( Same Origin Policy ) ေၾကာင့္ <iframe> ကေနတစ္ဆင့္ Different domain က script ေတြအလုပ္မလုပ္ေတာ့တဲ့အတြက္ပါမလာေတာ့ဘူး ။ SOP Bypass ေတြဘာေတြ သိခ်င္တယ္ဆိုရင္ေတာ့ Manuel Caballero’s ရဲ႕ http://www.brokenbrowser.com/ မွာ Edge Browser အတြက္ ဟာေတြရွိတယ္။ တျခား Browser ေတြအတြက္လဲ ရွာၾကည့္လို႕ရပါတယ္။

Self XSS ဆိုတာတျခားမဟုတ္ဘူး ကိုယ့္ Browser မွာ ကိုယ့္ဘာသာကို Inspect Elelment နဲ႕ျပင္ျပီး JS or HTML  ေတြ execute လုပ္တာ ။ Client Side Attack ပါဆို တျခား Client ကို ဘယ္လိုလုပ္ခိုင္းမွာလဲ ? အကိုေရ Ctrl + Shift + J ကို ႏွိပ္လိုက္ပါ။ ျပီးရင္ console ထဲ၀င္လိုက္ပါ။ alert(1) လို႕ရိုက္ေပးပါလား ? ခုေခတ္စကားနဲ႕ေျပာလိုက္မယ္ ။ Ha Ha Pe Ya Mal bro 😛

တျခားနည္းတစ္ခုရွိေသးတယ္ scheme:// ကိုေျပာင္းတာ ( ဒါကေတာ့ ကိုေကာင္းထက္ေအာင္ေျပာတဲ့ Tangled Web ဆိုတဲ့ စာအုပ္ထဲကေန က်ေနာ္သိလာတာ )

http:// , mailto:// စတဲ့ scheme ေတြလိုမ်ိဳးပဲ JavaScript လဲရွိပါေသးတယ္။

javascript:/*google.com*/alert(document.domain)

ဘာမွလုပ္လို႕မရဘူးဗ် ။ အဲဒါမ်ဳးေတြ ကိုယ့္ Browser မွာ ကိုယ့္ကို JS ေတြ run ေနတာ စိတ္၀င္စားမွာမဟုတ္ဘူး။

Reflected ေတာင္ UI (User Interaction) လိုတဲ့အတြက္ Store ေလာက္ effect မျဖစ္တာ သိျပီးသားထင္ပါတယ္။

Exploiting XSS with POST method

POST method နဲ႕ေရးထားတဲ့ XSS ေတြက GET method လိုမ်ိဳးမဟုတ္ေတာ့ တခ်ိဳ႕မသိဘူးထင္တယ္ ဟီး။ သိရင္လဲသိမွာေပါ့ ။ သိရင္ ေက်ာ္လိုက္။ POST နဲ႕ေရးထားတဲ့ဟာဆိုရင္ က်ေနာ္တို႕ ?param=<js_code> ပံုစံနဲ႕မရေတာ့ဘူး။ URL မွာ query string အေနနဲ႕ မျပဘူးေလ။ ဒီေတာ့ ကိုယ့္ဘာကို form ျပန္ေရးေပးရတယ္။

Example

<form method=POST action="vulnerable.php">
<input type="hidden" name="param" value="<js_code>">
<input type="submit" name="">
</form>

Browser & XSS

သာမန္ Chrome မွာ alert ေတြဘာေတြျပျပီဆိုရင္ တို႕ေတြစဥ္းစားရတယ္ ၾကမ္းလွခ်ည္လားဗ်ာေပါ့ ။ Why?

<?php
echo $_GET['lol'];
?>

XSS ?

http://localhost/xss.php?lol=%3Cscript%3Ealert(1)%3C/script%3E

Chrmoe မွာ XSS auditor ရွိတယ္တဲ့ ။ မင္းသိဖို႕ေကာင္းတယ္  😀

ဒီေတာ့ Edge ကေရာ ? ရွိတာပဲ အဲဒါေတြရွိလို႕ သူတို႕ ရွာေနၾကတာေပါ့ Bypass ေတြ

Chrome XSS Bypass

ဒါလဲ

Filter Bypass

တခါတေလက်ေတာ့ Filter ေတြလဲ Bypass ရေသးတယ္။ အရမ္းစိတ္၀င္စားဖို႕ေကာင္းတယ္ဗ်။ ဒါေၾကာင့္ က်ေနာ္ကေလ့လာေနရတာတင္ သေဘာက်ေနတာ အရမး္ကို အႏုပညာဆန္တယ္။

Filter ေတြကိုေရွာင္မယ္ရွားမယ္။

http://html5sec.org/

ေက်ာ္မယ္ခြမယ္။

xssor.io

လိုေနတာအသစ္

Conclusion

ဒီေလာက္ဆို သေဘာေပါက္ေရာေပါ့။ ဟိဟိ 😀 က်ေနာ္သိသေလာက္ေရးေပးထားတာပါ။

6 Comments

  1. ေက်းဇူးတင္ပါတယ္ အခုလို အစအဆံုး မဟုတ္သည့္တိုင္ နည္းနည္းေလးကို အေသးစိတ္ရွင္းျပထားလို႔ နားလည္လြယ္တာက တၾကာင္း ရွင္းတဲ့ ဆရာကဘဲ ေတာ္လို႔လား မသိ …ေတာ္ရံု ငႏုေတာင္ နားလည္ပါတယ္ လို႔ ေျပာရင္း အခုလို အရမ္း ျပည့္စံုတဲ့ post တစ္ခုပါဘဲ ဘဒို

    • နားလည္တယ္ဆိုတာနဲ႔တင္ Bill 2000 ေခ်းၿပီး ေရးထားတာ တန္သြာၿပီ ? ေက်းဇူး အထူး Bro

  2. ကြ်န္ေတာ္တို့လို beginner ေတြအတြက္သေဘာေပါက္လြယ္ေအာင္ေသခ်ာရွင္းျပထားတဲ့tutoေလးပါ။ေက်းဇူးတင္ပါတယ္…အကိုေရ

Comments are closed.