Webshell简介

webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。

文件上传漏洞

入侵者在针对web进行攻击时,想要取得webshell,最直接的方式就是将web木马插入服务器端进行成功
解析,针对上传点就是利用PHP/JSP木马,并且要求木马的后缀为.php .jsp进行保存。因此,上传木马
的过程中就是在web系统中新增一个页面,如果能成功上传,就可以用菜刀、Altman等webshell工具进行连接,成功拿下webshell。

相关链接:
中国菜刀官网
工具合集下载

上传文件攻击思路

如图所示,整个过程可分为三大步骤:
1. 客户端上传功能:
(1)用户提交上传表单,利用HTML格式,实现上传格式的编制,在封装到HTTP包中,开始传
输。
2. 中间件上传功能(中间件主要有三个流程):
(1)接收用户提交的表单;
(2)将表单内容存储为临时文件;
(3)根据安全规范,将临时文件保存为正式文件。
3. 服务器存储
(1)服务器会存储正式文件,并将其存放在中间件规定的真实路径中;
(2)上面给出了完整的上传业务流程,下面通过具体的流程来分析其中的安全隐患。

Content-Type 标头告诉客户端实际返回的内容的内容类型。

Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=something

相关链接:
HTTP content-type 对照表
.htaccess攻击

上传攻击的条件

1.目标网站具有上传功能
上传攻击的前提是:目标网站具有上传功能,可以上传文件,并且上传文件,并且文件上传到服务
器能被存储。
2.上传的目标文件能够被Web服务器解析执行
由于上传文件需要依靠中间件解析执行,因此上传文件后缀应为可执行格式。在tomcat+jsp环境
下,要求上传的web木马采用.jsp后缀名(或者能有以jspx方式解析的后缀名),并且存放上传文件的
目录要有执行脚本的权限,以上两种缺一不可。
3.知道文件上传到服务器后的存放路径和文件名称
许多web应用都会修改上传文件的文件名称,这时就需要结合其他漏洞获取这些信息,如果不知道上传的存放路径和文件名称,即使上传成功也无法访问,因此,如果上传成功但不知道真实路径,那么攻击没有任何意义。
4.目标文件可被用户访问
如果文件上传后,却不能通过Web访问,或者真实路径无法获取,木马这无法攻击者打开,那么就
不能成功实施攻击。

上传检测绕过技术

1.客户端校验绕过:
(1)直接修改js代码或者使用抓包的方法修改请求内容绕过,可以先上传一个gif木马,通过抓包修改
为 jsp/php/asp,只用这种方法来检测是肯定可以绕过的。
(2)更简单的方法是直接关掉js
2.服务端绕过MIME 检测
校验请求头content-type字段绕过,通过修改Http头的content-type即可绕过

POST /upload.do HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: localhost
Content-Type: multipart/form-data; boundary=xYzZY
Content-Length:155
--xYzZY
Content-Disposition: form-data; name="userfile"; filename="shell.jsp"
Content-Type: image/gif (原为Content-Type: text/plain)
<% system($request.getParm['command']);%>
--xYzZY-

3.文件幻数(文件头)检测绕过
在木马内容的前面插入对应的文件头内容,例如:GIF89a ,更保险的方法是在可上传的文件中插
入木马代码,然后修改后缀

4.文件加载检测
通过例如加载文件进行图像渲染的方式来测试,这个时候就一般需要在正常的文件中插入木马代码
了,例如图像,那么插入的代码一般会放在图像的注释区,因此不会影响图像正常渲染绕过这种检测,
此时可以使用工具(称为插马器)来进行插入,例如edjpgcom,或者直接用copy命令来合成也可以,当然这种检测不一定能够完全绕过。

5.后缀黑名单检测
查找黑名单的漏网之鱼,例如:
大小写:如果检测的时候不忽略大小写,那么可以改变后缀名的大小写绕过
扩展名:列表中如果忽略了某些后缀,能被解析的文件扩展名列表如下
jsp jspx jspf
asp asa cer aspx
php php php3 php4 pht
exe exee

6.后缀白名单检测
白名单检测还是会比黑名单强一点,常见的绕过方法有%00截断,还有服务器的解析漏洞
%00截断漏洞:如果存在这类漏洞,那么后缀名的检测都可以绕过,可以如下命名一个上传文件
test.jsp%00.jpg
解析漏洞:这类漏洞是本身服务器的中间件产生的,apache,nginx都被爆出过存在解析漏洞。

Webshell 管理工具使用示例

工具解压后目录:

在文件目录调出cmd命令行:

cmd命令行运行java -jar Cknife.jar 命令启动工具:

下面是我自己测试的一个系统,系统具有上传功能,可以上传文件,并且文件上传到服务器能被存储,我上传了一个jsp脚本文件至Tomcat下部署的项目的一个目录下面。

并且这个上传的文件是知道真实路径的,可以被访问。

在渗透测试工具页面右键添加地址,输入“口令”,再在配置项里面配置脚本的一些变量:

添加之后,双击:

连接成功,触发文件管理,如图:

这个时候只要我们拥有这个服务器的相关权限,我们就可以对此服务器的文件进行上传、下载、删除、查询操作了。

也可以获取服务器的虚拟终端:

:此软件打开时杀毒软件可能会报是错误文件的,如果继续使用需要通过关闭杀毒软件,并且还需要关闭windows的实时保护。

文件上传漏洞修复方案

1. 文件扩展名服务端白名单校验;
2. 文件内容服务端校验;
3. 上传文件重命名;
4. 隐藏上传文件路径,以流方式输出。

Webshell文件上传漏洞和文件上传攻击相关梳理相关推荐

  1. java 文件上传漏洞_文件上传漏洞(File Upload)

    简介 File Upload,即文件上传漏洞,通常是由于对用户上传文件的类型.内容没有进行严格的过滤.检查,使得攻击者可以通过上传木马,病毒,恶意脚本等获取服务器的webshell权限,并进而攻击控制 ...

  2. php文件上传漏洞waf,文件上传绕过WAF

    文件上传 文件上传实质上还是客户端的POST请求,消息主体是一些上传信息.前端上传页面需要指定 enctype为multipart/from-data才能正常上传文件. 此处不讲各种中间件解析漏洞只列 ...

  3. java 文件上传漏洞_文件上传漏洞(绕过姿势)

    文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接.但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识.俗话说,知己知彼方能百战不殆,因此 ...

  4. CTF学习笔记20:iwebsec-文件上传漏洞-05-htaccess文件上传

    本练习最终只能上传图片,关键要让图片文件可以调用,也就是作为php解析. 一.通过之前的方法均不能上传php文件 通过burpsuite配合改扩展名.大小写.双写等手段均不上传成功. 二.编写并上传. ...

  5. php文件跨站漏洞防御,修复PHP跨站脚本攻击漏洞(XSS)方法

    1.昨天360站长之家开通官网直达,安全报高突然报[高危]跨站脚本攻击漏洞,必须修复才可进行官网直达. 2.神马是XSS,额我也不懂,百度如下: 用户在浏览网站.使用即时通讯软件.甚至在阅读电子邮件时 ...

  6. web---文件上传漏洞之文件扩展名修改

    1. 打开所要上传文件的网站,并打开burp suite  如下所示操作.                                                        2. 点击 & ...

  7. 054 webshell介绍与文件上传漏洞

    文章目录 本来想把关于大马.小马.菜刀,蚁剑,upload-labs(部分实验)等小型实验展示单独出一章节内容,后来想想还是整合在一起吧.所以说这一章节的内容会 ¥¥¥有点多¥¥¥ 一:漏洞概述 二: ...

  8. 文件上传漏洞、WebShell、防御及绕过利用、Web容器解析漏洞、编辑器上传漏洞

    文章目录 文件上传漏洞 漏洞概述 漏洞成因 漏洞危害 WebShell 大马 小马 GetShell 漏洞利用的条件 PUT方法上传文件 漏洞的防御.绕过和利用 黑白名单策略 安装upload-lab ...

  9. 【文件上传漏洞-01】文件上传漏洞概述、防御以及WebShell基础知识补充

    目录 1 文件上传漏洞概述 2 文件上传漏洞防御.绕过.利用 2.1 黑白名单策略 3 WebShell基础知识补充 3.1 WebShell概述 3.2 大马与小马 1 文件上传漏洞概述 概述:文件 ...

最新文章

  1. PyAlgoTrade Hello World 第一个程序(一)
  2. Genymotion 解决虚拟镜像下载速度特别慢的问题
  3. 孙庆新:做产品,感觉从何而来
  4. 电脑回收站删除的文件怎么恢复,原来这么简单
  5. Electric shaver and clean: workable when power is low
  6. python中的优化器有哪些_Python SciPy 优化器(Optimizers)
  7. 软件测试周刊(第26期):从喜欢里得到力量和快乐
  8. 含辞未吐,声若幽兰,史上最强免费人工智能AI语音合成TTS服务微软Azure(Python3.10接入)
  9. 【shel】-if表达式
  10. 计算机表格操作教程,Excel使用教程 Excel表格的10个基本操作
  11. 袋鼠云的mysql_袋鼠云数据中台专栏2.0 | 数据中台之数据集成
  12. 7类 登录/注册 安全漏洞
  13. [Win32] 窗体暗色模式, C++, WinForm, WPF 使用方法, 判断颜色模式, 响应颜色变更消息, 设置标题栏暗色.
  14. Pandas合并之Merge合并
  15. Flutter开发之——Card
  16. Linux下查看GPU显卡信息
  17. XPC Client error: Connection interrupted问题解决方案
  18. 计算机网络工程报告,计算机网络工程实习报告
  19. 计算机英语brain,人类大脑纪录片《脑力大挑战 Test Your Brain》全3季 英语中字 标清/1080P高清纪录片...
  20. [Hack The Box] HTB—Paper walkthrough

热门文章

  1. Java- 语言识别LanguageDetector
  2. Python:批量增强图片清晰度 ——基于百度API,含获取的AK、 SK的流程,access_token的获取流程,以及生成.exe文件
  3. 按某种顺序排列的使计算机能执行,计算机一级考试试题理论题及答案
  4. php文件大小单位单位转换
  5. 你花了多久弄明白架构设计?万字Java技术类校招面试题汇总
  6. 心想事成要怎么想才能成
  7. 魅蓝note3 android7,魅蓝Note3和全面评测对比 良心推荐!
  8. 图数据库:Nebula Graph【开源的分布式图数据库】
  9. 【Java基础】Java7新特性—Files类,Path类,Paths类的用法
  10. 崇州:鸡冠山 白塔湖 九龙沟 罨画池 陆游祠{组图及介绍}