WEBshell与文件上传漏洞
目录
一、文件上传漏洞的原理
二、文件上传的原理
三、文件上传攻击
1.文件上传漏洞--绕过前端js检测
2.文件上传-绕过MIME类型检测
3.文件绕过-过滤不严格绕过
4.文件绕过-绕过黑名单检测
4.1 使用大小写绕过
4.2 使用黑名单里面没有的后缀名:php1,php2,php3、php5、phtml、asp、aspx、ascx、 ashx、 cer、 asa、 jsp、 jspx 、cdx.
4.3 特别文件名绕过
4.4 %00绕过,在许多语言函数中,处理字符串的函数中0x00被认为是终止符
4.5 .htaccess文件攻击
5.服务器文件绕过
5.1 apache中间件解析漏洞
5.2 iis中间件
5.3nginx漏洞解析
6.文件上传之绕过文件内容
6.1 图片码绕过
四、文件上传攻击防护
一、文件上传漏洞的原理
如果web应用程序对上传文件的安全性没有过滤和校验,攻击者可以通过上传webshell恶意文件对服务器进行攻击 。
二、文件上传的原理
1.有文件上传功能
2.上传文件的目录能解析脚本文件
3.能访问到上传的文件
三、文件上传攻击
文件上传防护和绕过手段
1.文件上传漏洞--绕过前端js检测
由于网站客户端对文件的上传类型做了限制,不允许我们上传.php文件,我们可以通过bp抓取发送数据包,然后将数据包做改变即可
上传发现前端js有过滤,可以选择修改上传数据包上传脚本文件。
首先我们将写有一句话木马的文件后缀改为.png格式
查看能不能连接到该文件,使用cknife
2.文件上传-绕过MIME类型检测
多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。标准的文件上传组件中会自动上传文件的MIME类型,但是由于MIME类型是从客户端传递的,修改也不影响文件正常运行,因此通过BURP拦截和修改MIME类型可以轻易绕过此类检测。
使用bp抓包,修改content-type类型:image/jpeg (该类型为服务器接收的类型)
3.文件绕过-过滤不严格绕过
网站的黑名单中会写将一些.php .jsp.asp.aspx等后缀名进行过滤,但是可能过滤不全,所以我们可以使用其他可执行的文件后缀到服务器上。
常用的一些可执行的文件脚本后缀:
・ php , php2 , php3 , php5 , phtml
・ asp , cer , asa , cdx
・ aspx , ascx , ashx・ jsp , jspx
・py
直接将文件名修改为33.phtml
查看文件是否能连接
4.文件绕过-绕过黑名单检测
4.1 使用大小写绕过
将文件名改为PhP.
4.2 使用黑名单里面没有的后缀名:php1,php2,php3、php5、phtml、asp、aspx、ascx、 ashx、 cer、 asa、 jsp、 jspx 、cdx.
4.3 特别文件名绕过
修改数据包里的文件名改为test. php.或者test. php (有空格)由于这种命名格式在windows系统里是不允许的。所以在绕过上传之后windows系统 会自动去掉 点和空格。Unix/Linux系统没有这个特性。
4.4 %00绕过,在许多语言函数中,处理字符串的函数中0x00被认为是终止符
例如:xxx.php%00.txt,上传是txt是合法的,但是保存到文件里时会把%00当做终止符。只保存xxx.php.
首先上传文件名为xxx.php.png格式的文件,然后抓包。
在hex模块下,修改值
4.5 .htaccess文件攻击
.htaccess函数:通过.htaccess文件调用php解释器去解析一个文件名中只要包含 “aa”这个字符串的任意文件,无论你文件名是什么样子,只要包 含”aa”这个字符串,都可以被以php的方式来解析。
.htaccess 文件内容:
<FilesMatch "ljh" >SetHandler application/x-httpd-php</FilesMatch>
注意:格式一定要写对,不然会报出:Internal Server Error
5.服务器文件绕过
5.1 apache中间件解析漏洞
个文件名为test. php. aaa. bbb. ccc的文件,Apache会从ccc的位置往 php的位置开始尝试解析,如果ccc不属于Apache能解析的后缀名,那么 Apache就会尝试去解析bbb,这样一直往前尝试,直到遇到一个能解析的扩展名为止。
我们使用cknife 连接,看能不能连接到,成功连接。
5.2 iis中间件
新建一个文件夹,名字为任意文件名.asp ; 那么在这个文件夹里的内容全部会被当场脚本取运行。
新建一文件名字为:任意文件名.asp;任意文件名.jpg 此文件会当成脚本运行(1.asa;1.jpg,2.cdx;2.txt)
3:服务器配置错误(put 协议) 抓取请求包,发送到repeater模块 , 修改为PUT协议写入文件
3:服务器配置错误(put 协议) 利用MOVE协议把上一步的文件tys.txt 移动重命名为 tys.asp, 移动时增加 Destination:http://192.168.3.95/tys.asp 内容为移动后内容
IIS解析漏洞
#2 IIS7.0,7.5
正常路径:uploads/1.jpg 把php文件修改后缀为jpg进行上传
黑客思路:uploads/1.jpg/任意文件名.php 访问方式
这个文件就会被当成脚本去执行。
5.3nginx漏洞解析
正常路径:uploads/1.jpg
黑客思路:uploads/1.jpg/任意文件名.php
首先上传88.png,然后访问时再后面加上aa.php即可
#2 对低版本的Nginx可以在任意文件名后面添加%00.php进行解析攻击
payload:uploads/1.jpg%00.php 当做正常脚本执行
6.文件上传之绕过文件内容
6.1 图片码绕过
把代码文件和图片文件进行二进制编码合并形成新的图片,进行上传. 注意2.php代码最前面需要有一个空格
cmd下执行:建议使用小图片copy /b 1.jpg+2.php=3.jpg (注意/b后边的空格)
查看图片码:
将合并文件上传连接即可
四、文件上传攻击防护
1.上传文件的存储目录不给执行权限
2.隐藏上传文件访问路径
3.文件后缀白名单,注意0x00截断攻击(PHP更新到最新版本)
4.不能有本地文件包含漏洞(include dama. jpg)
5.及时更新web应用软件避免解析漏洞攻击
WEBshell与文件上传漏洞相关推荐
- 文件上传漏洞-解析、验证、伪造1
文章目录 文件上传漏洞: webshell: 文件上传漏洞的原因: 文件上传常见检测: 靶场实战 1.前端验证绕过 2.Content-Type方式绕过 3.黑名单绕过 4. .htaccess文件绕 ...
- kindeditor在服务器上上传图片显示叉叉,什么原因?,kindeditor=4.1.5 文件上传漏洞利用...
kindeditor<=4.1.5 文件上传漏洞 - Kindeditor <=4.1.5 file upload vulnerability and use 漏洞存影响版本:小于等于4. ...
- 054 webshell介绍与文件上传漏洞
文章目录 本来想把关于大马.小马.菜刀,蚁剑,upload-labs(部分实验)等小型实验展示单独出一章节内容,后来想想还是整合在一起吧.所以说这一章节的内容会 ¥¥¥有点多¥¥¥ 一:漏洞概述 二: ...
- Webshell文件上传漏洞
简述: 文件上传漏洞是由于网站对上传的文件没有进行严格筛查,导致用户可以上传一些可执行文件的恶意代码,或webshell,如asp,hph等,然后再通过url访问执行恶意代码,或是通过webshell ...
- 墨者靶场 入门:WebShell文件上传漏洞分析溯源(第1题)
墨者靶场 入门:WebShell文件上传漏洞分析溯源(第1题) 题目 背景介绍 实训目标 解题方向 解题步骤 题目 背景介绍 某公司内部资料分享平台存在一个文件上传页面,为了保证服务器的安全,现在安全 ...
- 【墨者学院】WebShell文件上传漏洞分析溯源(第2题)
替补选手的学习日记 靶场:墨者学院 题目:WebShell文件上传漏洞分析溯源(第2题) 1.打开是一个文件上传的提交框,正常上传一个txt文件看下返回结果. 2.看情况是限制了文件上传的后缀名,显示 ...
- 【墨者学院】WebShell文件上传漏洞分析溯源(第4题)
替补选手的学习日记 靶场:墨者学院 题目:WebShell文件上传漏洞分析溯源(第4题) 1.还是老样子,正常上传一个txt文件查看返回结果,提示此文件不允许上传. 2.正常上传图片查看返回结果,发现 ...
- 【墨者学院】WebShell文件上传漏洞分析溯源(第3题)
替补选手的学习日记 靶场:墨者学院 题目:WebShell文件上传漏洞分析溯源(第3题) 1,打开页面依旧是熟悉的提交框,那么正常上传一个txt文件看下返回结果. 2.提示此文件不允许上传,应该是做了 ...
- 文件上传漏洞、WebShell、防御及绕过利用、Web容器解析漏洞、编辑器上传漏洞
文章目录 文件上传漏洞 漏洞概述 漏洞成因 漏洞危害 WebShell 大马 小马 GetShell 漏洞利用的条件 PUT方法上传文件 漏洞的防御.绕过和利用 黑白名单策略 安装upload-lab ...
最新文章
- 设置Cocos2D屏幕横向或纵向的方法
- 算法设计与分析 2 二维递推间接递推递归分析
- ceph存储原理_【理论研究】漫谈传统IT基础设施10-存储(04)
- SQL Server 获取表或视图结构信息
- iOS 汉字转拼音 PinYin4Objc
- python显示外部命令_Python 执行外部指令
- 上云数据分析首选产品Quick BI的可视化之路
- Annotation 的前世今生
- vim的模式及常用命令
- mysql 精度_mysql-笔记 精度
- 前端学习(2230):react条件渲染实现登录二
- LeetCode 2001. 可互换矩形的组数
- 三层体系结构学习总结
- 【英语学习】【English L06】U07 Jobs L6 I love what I do
- 进程线程及堆栈关系的总结
- python的DataFrame排序问题
- 2016集训队论文吉如一
- 大华嵌入式笔试总结-提前批+正式批(已offer)
- 创业管理:创业者的十八般武艺——1.2 创业者素质体系(1)
- 多个pdf怎么合并成一个pdf?多个pdf文件怎么合并成一个文件?
热门文章
- JAVA中的Vector类用法整理
- java异或运算结果数据类型_java中的数据类型和运算符的总结归类。
- 邮政app js瑞数5代低能版 ImyafEkG D2ko1bQr sekiro例子 webview调试
- 刻录iso到光盘的简单方法
- OSI七层网络模型与TCP/IP四层模型介绍
- [转载] 在进行数据分析的时候,什么情况下需要对数据进行标准化处理?
- mysql输入代码时光标变成下划线时 变回原来的竖线
- C语言中,%m.ns与%m.nf的区别
- php户型图识别,买房必看!一分钟学会如何识别户型图中隐藏的猫腻
- 研究生退学学计算机,研究生退学重考,总是害怕提到这段退学的经历怎么办?...