1.什么是文件上传漏洞?
在很多网页中,会存在上传文件的接口,比方说上传头像啊、附件之类,但是如果该网站对于上传的文件类型/内容。没有进行过滤或者过滤的不够严格,那攻击者就能够通过上传一些脚本文件比如:php、asp、jsp,从而获取到shell权限,即webshell,这就是文件上传漏洞。
2.什么是webshell?
因为在asp、php、jsp或者cgi脚本语言当中,存在一些系统函数,可以获取到系统权限来执行一些命令。而如果服务器的网站中存在一个这样的文件,那么我门就可以通过网页访问到这个文件,从而能够执行一些命令,就可以获得服务器的一些权限,获得控制权和访问权,这就是webshell。
webshell也被称作是网页的后门,因为黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
本质就是,攻击者写了一些能够在服务器端执行系统命令或者说是能够获取到服务器的相关信息的代码文件,然后把它上传到了服务器,能够在服务器端正常解析执行,然后攻击者通过在网页上输入对应的路径可以去访问对应的文件,然后可以提交一些命令参数,从而获得服务器的信息的这么一个过程。
最简单的一个php的一句话木马:<?php @eval($_post['x']);?>
@表示忽略错误的去执行,eval函数的话就是能够使得内部的字符串去掉引号,然后把他们当作代码去解析。在这个场景中我们就可以通过post的方式,在字段x中输入我们想要执行的命令,就能够获取到服务器端执行这个命令后的结果,比如ipconfig,就可以获取到服务器的ip信息。
3.怎么样才可以获取到webshell
首先你的脚本文件要能够绕过过滤上传到服务器,其次呢你要知道文件被上传到了哪里,这样你才可以去访问,最后就是上传成功以后,文件到底在服务器端能不能按照我们想要的格式去解析。
4.细节补充:
网站是用什么语言开发的,上传过去的木马文件就需要是什么样的,要保持一致。
因为这是由服务软件所决定的,一般 网站会设置只能解析的代码类型。
我们上传的木马,要在服务器能够以正确的形式解析才行,服务器端是根据文件的后缀,来决定用什么样的方式解析,如果网站是用php开发的,那么上传的文件如果后缀是.php,服务器端才会调用php解析引擎去解析php文件,但是如果是jpg文件,服务器是不会去解析的,而是直接返回给客户端。
5.连接工具
本质是就是漏洞利用成功之后,通过软件发起了很多请求,从而得到了很多信息,然后用一个可视化的界面展示出来。常用的有:c刀,蚁剑等等
同一个木马文件,使用不同的连接软件连接结果可能不一样,有的可能可以有的不行,这很正常,只要有一个可以用就可以了。注意连接的时候需要密码,这个密码就是木马文件当中写的用来接收参数的字段名。