第七天文件上传漏洞

-tampr脚本

1.1 -tampr脚本简介

  • 是sqlmap中用于绕过waf或应对网站过滤逻辑的脚本。SQLMA自带了一些tamper脚本,可以在
    tamper目录下查看它们。用户也可以根据已有的tamper脚本来编写自己的tamper脚本(绕过逻辑)。

在这里插入图片描述

  • 这段代码为bihuo.py脚本文件的核心代码,其作用是将SQLMAP检测目标时所使用的payload 中的and or全部替换成&& ||

在这里插入图片描述

1.2 如何用 --tamper脚本

启动SQLMAP

在这里插入图片描述
在这里插入图片描述

1.3查看SQLMAP调用tamper脚本文件space2comment.py的过程

在这里插入图片描述
在这里插入图片描述
检测过程中可以观察到,SQLMAP检测目标时使用的payload中空格已被替换
成/**/,说明tamper脚本space2comment.py 调用成功!

2 文件上传漏洞

2.1 什么是文件上传漏洞

文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。

2.2什么是webshell

WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门。攻击者在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器web目录下正常的网页文件混在一起,然后使用浏览器来访问这些后门,得到一个命令执行环境,以达到控制网站服务器的目的(可以上传下载或者修改文件,操作数据库,执行任意命令等)。 WebShell后门隐蔽较性高,可以轻松穿越防火墙,访问WebShell时不会留下系统日志,只会在网站的web日志中留下一些数据提交记录

2.3产生文件上传漏洞的原因

  1. 原因:
  2. 对于上传文件的后缀名(扩展名)没有做较为严格的限制 对于上传文件的MIMETYPE(用于描述文件的类型的一种表述方法) 没有做检查
    权限上没有对于上传的文件目录设置不可执行权限,(尤其是对于shebang类型的文件) 对于web
    server对于上传文件或者指定目录的行为没有做限制
  3. 原理: 在 WEB 中进行文件上传的原理是通过将表单设为 multipart/form-data,同时加入文件域,而后通过 HTTP
    协议将文件内容发送到服务器,服务器端读取这个分段 (multipart)
    的数据信息,并将其中的文件内容提取出来并保存的。通常,在进行文件保存的时候,服务器端会读取文件的原始文件名,并从这个原始文件名中得出文件的扩展名,而后随机为文件起一个文件名
    ( 为了防止重复 ),并且加上原始文件的扩展名来保存到服务器上
    文件上传后导致的常见安全问题一般有:
    上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代 码执行;
    上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为(其 他通过类似方式控制策略文件的情况类似);
    上传文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行:
    上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执 行,被用于钓鱼和欺诈。
    除此之外,还有一些不常见的利用方法,比如将上传文件作为一个入口,溢出服务器的后台处理程序,如图片解析模块;或者上传-一个合法的文本文件,
    其内容包含了PHP脚本,再通过“本地文件包含漏洞(Local File Include)"执行此脚本;等等。此类问题不在此细述。

3 文件上传漏洞的攻击方式

3.1 uplod – pass-01 前端限制

js脚本代码如下
在这里插入图片描述
原理
在表单中使用onsumbit=checkFile()调用js函数来检查上传文件的扩展名。当用户在客户端选择文件点击上传的时候,客户端还没有向服务器发送任何消息,就对本地文件进行检测来判断是否是可以上传的类型,这种方式称为前台脚本检测扩展名。
在这里插入图片描述
绕过方法
这种限制很简单,通过Burp Suite很简单的修改文件后缀名就可以完成绕过检查,或者是讲木马修改后缀名后上传,通过改包工具修改上传。如果是JS脚本检测,在本地浏览器客户端禁用JS即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 uplod – pass-02 [‘upload_file’][‘type’] 绕过

上传php文件,提示文件类型不正确
在这里插入图片描述
Burp Suite 抓个包看一下
在这里插入图片描述
查看源码,发现存在对[‘upload_file’][‘type’]的检测
在这里插入图片描述
绕过办法
抓包,将application/octet-stream改为image/jpeg或image/png或image/gif,三者均为图片类型,放包后可以进行上传
在这里插入图片描述
原理:

  1. 什么是MIME类型?
    在把输出结果传送到浏览器上的时候,浏览器必须启动适当的应用程序来处理这个输出文档。这可以通过多种类型MIME(多功能网际邮件扩充协议)来完成。
    在HTTP中,MIME类型被定义在Content-Type
    header中。Content-Type(内容类型)一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些
    PHP网页点击的结果却是下载一个文件或一张图片的原因。Content-Type 标头告诉客户端实际返回的内容的内容类型。
    常见的媒体格式类型如下:
text/html : HTML格式 text/plain :纯文本格式 text/xml : XML格式 image/gif :gif图片格式 image/jpeg :jpg图片格式 image/png:png图片格式

3.3 uplod – pass-03 部分黑名单绕过

上传php文件,提示不允许上传.asp,.aspx,.php,.jsp后缀文件!
在这里插入图片描述
看下源码
但是可以上传.phtml .phps .php5 .pht后缀文件
可是windows 不解析

$deny_ext = array('.asp','.aspx','.php','.jsp');

strrchr()查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。
分析源码,后台对上传的文件限制较多,凡是黑名单中的内容全都不都上传,且不能用大小写、::DATA、末尾空格等措施绕过。
在这里插入图片描述
一、利用Windows特性
在window的时候如果文件名+":: D A T A " 会 把 : : DATA"会把:: DATA"::DATA之后的数据当成文件流处理,不会检测后缀名,且保持:: D A T A 之 前 的 文 件 名 , 他 的 目 的 就 是 不 检 查

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值