上传木马拿webshell的几种方法汇总(不全)
这里整理了几种上传木马的方法,主要分为两类,拿到网站后台和没有网站后台权限两种。可能有一些比较老,已经很难见到了,每种只是简单介绍,用来提醒自己一下,以免忘记。具体的方法可以去网上针对每种方法搜索细致的教程和攻略,可能不是很全,以后会补充,暂时没什么例子,以后有了随时更新。
普通权限下拿webshell
使用sql注入拿webshell
前文提到了sql写入木马的方法,区别就是后台可以直接运行sql语句,而sql注入需要自己构造语句,但总体思路不变:
- 创建表
- 将一句话写入刚创建的表中
- 查询一句话所在表到文件,成功将一句话写入文件
头像上传木马
- 将大马放在文件夹中
- 将文件夹压缩成压缩文件(zip)
- 正常上传一个头像并且抓包
- 将数据包中图片头像的内容部分删掉
- 重新写入文件内容,将压缩文件写入到原本图片的位置
- 上传
- 之后返回包中会告诉我们绝对路径
文件上传漏洞
利用文件上传漏洞上传木马,绕过方式在这里就不细说了。
远程命令执行
使用远程命令执行,执行命令行命令“写入内容到文件”如:echo“<?php @eval($_POST['caidao']);?>” > x.php
会自动将创建木马文件并将一句话木马写入其中,我们连接即可。
xss和sql注入联合利用
有些输入框对一些符号过滤不严密(如<>
,所以一般存在xss的地方就可以这么利用)我们可以在这里输入一句话<?php @eval($_POST['caidao']);?>
之后再用数据库注入,查询到文件into file成功插入一句话木马
网站写权限漏洞
有些网站的管理员在配置网站权限的时候疏忽,导致我们有写权限,这种漏洞需要用工具来利用,在这里就不说了,只是提一下。而且已经很少见了。
通用漏洞
可以搜索一些跟网站相关的信息,比如cms类型和版本,编辑器类型,看看有没有通用的漏洞可以利用
拿到后台管理权限下上传木马
直接上传
当网站对上传的文件类型没有限制的时候直接利用后台的上传文件来上传木马脚本。大部分情况后台会告诉你上传位置,如果没有显示上传的绝对路径,可以抓包看response包。
修改上传类型
当网站限制上传文件的类型但在后台却可以修改的时候,果断修改上传文件类型,允许上传脚本类型,之后上传我们的木马即可。
数据库备份上传木马
当网站对上传的文件类型有限制的时候,我们可以先将木马上传成jpg等图片类型,之后使用数据库备份功能,将图片木马被分成脚本类型。
但并不是所有网站都这么蠢,有时候可能对于备份的目录,类型,是写死的,我们无法控制,可以通过修改静态页面,或者抓包改包等方式绕过。
突破JavaScript限制上传类型
有些网站对于上传类型的限制卸载了js脚本中,我们可以:
- 直接删除本地js文件(不推荐,这样容易这个网页就没法用了)
- 用开发者工具(如firebug修改js)
- 上传jpg等图片类型,之后抓包改回脚本类型
上传其他脚本类型
若目标服务器内还有其他类型的站点(如这个服务器内同时存在php的网站和asp的网站,我们获取了asp网站的后台,但这个后台限制我们上传asp的脚本文件)我们可以尝试上传不同类型的脚本文件,比如上传php,会发现服务器同样会执行。这是必然的,因为这个服务器中还有另一种类型的脚本的网站。
%00截断
我们通过服务器的解析漏洞,上传文件时将文件名用以下格式命名:xx.asp%00.jpg,之后进行抓包,将%00编码成空字符(也是字符串结束符)之后forward数据包,可以进行绕过。
服务器解析漏洞
利用已知的各版本服务器畸形解析漏洞来绕过:
1. IIS 5.x/6.0
2. IIS 7.0/7.5 Nginx<8.0
3. Apach
利用编辑器
利用网站的编辑器上传木马,可以上网搜索已知的编辑器漏洞,常用的有:fckeditor,ewebeditor,cheditor,有时候没有管理员权限也可以拿下webshell。
网站配置
利用网站配置页面,这个页面的值会直接写入在脚本文件中,所以我们可以像xss一样来插入一句话木马,但需要注意的是,一定要闭合好之前的标签,插入之后也要开启之后的标签,否则容易使此页面报错,并且不可逆的损害。导致以后都无法利用这个页面。
编辑模板
拿到后台之后,如果发现网站是使用的模板的话,我们可以编辑模板,将木马写在模板中。
修改脚本文件
动态的网站,好多函数都是写在单独的文件中的,我们可以在写网站需要的函数的脚本文件中写入木马。
数据库命令拿webshell
有些网站后台可以执行sql命令,这就和使用sql注入拿shell一样了:
- 创建表
- 将一句话写入刚创建的表中
- 查询一句话所在表到文件,成功将一句话写入文件
编辑模板添加静态页面
现在网站的默认生成文件的目录中添加目录xx.asp(需要配合IIS6.0服务器的畸形解析漏洞),之后再此目录下的所有文件都会当做asp脚本执行,然后我们修改模板中的生成静态界面的函数使它生成携带木马代码的静态文件,但在此页面下会当做asp脚本执行,就会成功执行我们的木马脚本。
文件包含
当我们的一句话木马上传成功,菜刀可以连接,但发现大马上传不了,被防火墙或者安全狗拦截时,可以考虑使用包含文件,思路如下;
- 先上传一个含有包含代码(如
<!-- #include file="x.jpg" -->
)却没有攻击代码的文件,不会被狗拦 - 再将大马改成jpg图片文件上传,也不会被狗拦
- 访问第一次上传的包含函数的文件,会发现执行了木马
这里是因为包含函数包含的文件会被当成脚本文件,直接将文件内容插入到这个文件中。
添加插件
将木马放入zip压缩文件中,最好是网站插件的压缩文件,之后再后台安装插件,选中含有木马的压缩文件,会自动将插件连通木马安装在网站目录下,接下来我们只需要寻找到木马的绝对路径即可。
修改404页面
在网站模板中的404页面中插入一句话木马,之后找到这个页面的绝对路径,访问之。