webshell与文件上传漏洞

webshell介绍

web指的是在web服务器上,而shell是用脚本语言编写的脚本程序,WebShell是一种用来进行网站和服务器管理的脚本程序,webshell一般是被网站管理员用于网站管理、服务器管理等等一些用途,但是由于webshell的功能比较强大,可以上传下载文件,查看数据库,甚至可以调用一些服务器上系统的相关命令(比如创建用户,修改删除文件之类的),通常被黑客利用,黑客通过一些上传方式,将自己编写的webshell上传到web服务器的页面的目录下,攻击者通过上传WebShell获得Web服务器的管理权限,从而达到对网站服务器的渗透和控制。

webshell的分类

大马:1.体积大,功能全;2.会调用系统的关键函数;3.以代码加密进行隐藏。

小马:1.体积小,功能少;2.只有一个上传功能。

一句话木马:1.代码短,只有一行代码;2.使用场景大,可单独生成文件,可插入文件;3.安全性高,隐匿性强,可变形免杀;4.框架不便数据执行(数据传递)。

webshell的特点

1、Webshell大多是以动态脚本形式的出现,也可以称为网站的后门工具;
2、Webshell就是一个asp或者php木马后门;
3、Webshell可以穿越服务器防火墙,由于与被控制的服务器或远程主机交换的数据都是通过80端口传递的,因此不会被防火墙拦截;
4、Webshell一般不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员很难看出入侵痕迹;
5、黑客将这些asp或者PHP木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。黑客可以用web的方式,通过asp或者php木马后门控制的网站服务器,包括上传下载文件,查看数据库、执行任意程序命令等。

文件上传漏洞原理

文件上传是大部分web应用都具有的功能,例如用户上传附件、修改头像、分享图片/视频等,正常的文件一般是文档、图片、视频等,web应用收集之后放入后台存储,需要的时候再调用出来返回,如果恶意文件如PHP、ASP等执行文件绕过web应用,并顺利执行,则相当于黑客直接拿到了webshell,一旦黑客拿到了webshell,则可以拿到web应用的数据,删除web文件,本地提权,进一步拿下整个服务器甚至内网,SQL注入攻击的对象是数据库服务,文件上传漏洞主要攻击web服务器,实际渗透两种相结合,达到对目标的深度控制。

一句话木马文件上传漏洞原理

例如:<%eval request(“pass”)%>通常将这句话写入一个文档里,然后将文件后缀改为asp,然后通过文件上传服务,传到服务器上面;eval函数是将其内部的代码执行,request函数的作用是应用外部文件。这相当于一句话木马的客户端配置。
其中eval就是执行命令的函数,$_POST[‘a’]就是接收的数据。eval函数把接收的数据当作php代码来执行。通过一些工具,我们就能够让插了一句话木马的网站执行我们传递过去的任意php语句。

客户端

一句话客户端增强版
中国菜刀
lanker一句话客户端
ZV新型PHP一句话木马客户端GUI版
蚁剑

文件上传漏洞绕过方法

利用burp抓包改后缀名进行绕过;

利用00截断上传webshell;

构造图片马绕过;

绕过服务器扩展名检测上传;

竞争条件上传绕过。

文件上传漏洞防御方法

1.检查文件上传路径 ( 避免 0x00 截断、 IIS6.0 文件夹解析漏洞、目录遍历 );

2.文件扩展名检测 ( 避免服务器以非图片的文件格式解析文件 );

3.文件 MIME验证 ( 比如 GIF 图片 MIME为 image/gif,CSS 文件的 MIME为 text/css 等 ) 3. 文件内容检测 ( 避免图片中插入 webshell);

4.图片二次渲染 ( 最变态的上传漏洞防御方式 , 基本上完全避免了文件上传漏洞 );

5.文件重命名 ( 如随机字符串或时间戳等方式 , 防止攻击者得到 webshell 的路径 );

6.黑,白名单过滤。

另外值得注意的一点是, 攻击者上传了webshell之后需要得到webshell 的路径才能通过工 具连接 webshell, 所以尽量不要在任何地方 ( 如下载链接等 ) 暴露文件上传后的地址, 在这里 必须要提一点 , 就是有很多网站的上传点在上传了文件之后不会在网页上或下载链接中暴露 文件的相对路径, 但是在服务器返回的数据包里却带有文件上传后的路径 .

你可能感兴趣的:(理论,渗透测试)