Cross Site Port Attack / XSPA

ဒီအေၾကာင္းက XVWA Walkthrough မွာ လဲ ပါပါတယ္။ ဒီမွာေတာ့ ျမန္မာလို အေျခခံေလးေရးေပးထားမယ္။ ဟိုမွာတုန္းကေတာ့ ကိုယ္ကခပ္တည္တည္နဲ႕ English လိုေတြဘာေတြေရးထားတာ 😀

SSRF ေပါ့။ SSRF ကေတာ့ က်ယ္လြန္းအားၾကီးပါတယ္။ ဒါေၾကာင့္ SSRF ထဲက XSPA ကိုေျပာတာျဖစ္ပါတယ္။

<?php 
$a=file_get_contents("http://localhost/data.txt");
echo $a;
 ?>

file_get_contents() function ကို သံုးျပီး output ျပန္ျပတာပဲျဖစ္ျဖစ္ File တစ္ခုအေနနဲ႕ ျပန္သိမ္းလိုက္တာမ်ိဳးေတြေတြ႕ဖူးမွာပါ။ PHP manual

ဒါက ဘာမွျပသနာမရွိတဲ့အေနအထားျဖစ္ပါတယ္။ ဒါဆို မရွိတဲ့ URL ဆိုရင္ေရာ?

<?php
$a=file_get_contents("http://localhost/data.txt@lol");
echo $a;
 ?>

Error

HTTP/1.1 တဲ့ Protocol ကို Version နဲ႕ပါလာျပတယ္။ ဟုတ္ျပီ ဒါဆို port 80 ကပြင့္ေနတယ္ေပါ့။ ဒီလိုဆို 443 ကေရာ ?

ဒါလဲပြင့္ေနတယ္ ။ ေသခ်ာေအာင္ျပမယ္။

ဒီလိုဆို မရွိတဲ့ဟာဆိုဘယ္လိုေပၚမလဲ?

<?php 
$a=file_get_contents("http://localhost:110/data.txt");
echo $a;
 ?>

110 နဲ႕စမ္းလိုက္မယ္။

ဒီေလာက္ဆို port scan တဲ့အေၾကာင္းေတာ့သိသြားျပီ။ ဒါဆို Real world နဲ႕စမ္းၾကည့္မယ္။

<?php 
$a=file_get_contents("http://mmsecurity.net:22/images/msf-logo.png");
echo $a;
 ?>

SSH က ပြင့္ေနတယ္။ ဟုတ္ျပီ ဒီလိုဆို 110

ဘာေၾကာင့္ Vulnerability ျဖစ္တာလဲ?

User Input ေပးလိုက္ရင္ေတာ့ ျဖစ္မွာပဲ 😀

Example Code

<?php 
$url=$_GET['url'];
$a=file_get_contents($url);
echo $a;
 ?>

Thanks for Reading xD

Reference