冲 upload-labs靶场(一)

前言:upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方法

第一关(js对文件后缀进行检查!)
在这里插入图片描述
我们看到一个上传点,那我们就上传一个图片
在这里插入图片描述
显示已经成功了,那我们上传一句话木马
什么是一句话木马?

一句话木马就是只需要一行代码的木马,短短一行代码,就能做到和大马相当的功能。为了绕过waf的检测,一句话木马出现了无数中变形,但本质是不变的:木马的函数执行了我们发送的命令

在这里插入图片描述
在这里插入图片描述
我们看下前端代码:
在这里插入图片描述
我们可以更改js校验中的白名单或者先改文件后缀名通过js校验再抓包更改后缀上传至服务器

先改文件后缀名通过js校验再抓包更改后缀上传至服务器
我们把一句话木马后缀改成.png绕过前端js的检查
在这里插入图片描述
在这里插入图片描述
因为shell的后缀名是修改为了png格式的,所以可以通过检测,这里抓到的数据包可以看到浏览器向服务器上传的的文件后缀还是png格式,我们只需将它改为php格式的,就可以将shell成功上传到服务器

我们同中国菜刀去连一句话木马
尴尬突然菜刀出问题了,下次在演示吧。哈哈

2.第二关(在服务端对数据包的MIME进行检查!)
先了解下什么是MIME?
在这里插入图片描述
对于web应用来说的话,就是在把响应结果传送到浏览器上的时候,浏览器必须启动适当的应用程序来处理这个响应文档。这就可以通过多种类型MIME(多功能网际邮件扩充协议)来完成。在HTTP中,MIME类型被定义在Content-Type header中。

在HTTP协议中,MIME类型就被定义在数据包的 Content-Type字段中了。那么MIME跟上传又有什么关系
在这里插入图片描述
从源码可以看出,在这一关中,服务器端对上传到服务器的文件进行了类型检测,也就是检测MIME。如果类型是image/jpeg、image/png、image/gif中的任何一种就允许上传,否则就提示文件类型不正确

我们先上传一个php脚本‘,看下什么情况
在这里插入图片描述在这里插入图片描述
我们看到上传失败,我们在上传个图片看看
在这里插入图片描述
上传成功!
看来只要是MIME类型满足了之后确实就上传成功了
这里就需要在上传shell的时候把php文件的MIME类型改为服务器允许的就可以。这样仅仅就是绕过了服务器端对MIME的检测并成功将shell上传,并不会对php文件本身造成什么改动。
在这里插入图片描述
在这里插入图片描述
第三关(禁止上传.asp|.aspx|.php|.jsp后缀文件)
在这里插入图片描述我们先看下源代码
在这里插入图片描述
这下好了,直接把所有的常用脚本语言的shell文件后缀全部禁止了。那么这样就万无一失没有漏洞了吗?

当黑名单把所有脚本后缀都禁止的时候,还会由于管理人员配置不当或者Apache本身的漏洞而造成漏洞的
我们先了解下apache相关知识
Apache的httpd.conf中可以进行配置,规定哪些文件后缀是以php格式来解析的,这是属于管理员的配置不当导致的漏洞

我们需要对httpd.conf文件进行修改
在这里插入图片描述
这句话的意思就是服务器会把.php、.phtml、.php3这几个后缀名的文件都用php格式来解析。
改完apache重启
我们上传3.phtml在这里插入图片描述
在这里插入图片描述
文件上传成功
=

第4关(禁止上传.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf后缀文件!)
在这里插入图片描述
可以看到这一关的过滤太狠了,基本把该过滤的都多虑了,把大小写绕过和上面一关的配置漏洞都考虑进去了。
但是黑名单里面还是漏掉了一个文件名,那就是Apache服务器的一个配置文件.htaccess。
关于.htaccess请看详解

所以这一关可以先上传一个.htaccess配置文件,写入规则让服务器把指定的文件格式按照php的格式解析。然后就上传指定文件格式的文件(不在黑名单中的)进行测试。
我们先写.htaccess文件
在这里插入图片描述
SetHandler application/x-httpd-php

该配置的意思就是让Apache对当前目录中的所有文件都以php的格式进行解析。

上传这个文件
在这里插入图片描述在这里插入图片描述
我们把脚本的后缀随便改下,只要不是过滤的就行
在这里插入图片描述
然后用工具连接脚本。(这里我遇到一点问题,可能是环境问题,各位老铁都试试!)

第五关:(本pass禁止上传.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf后缀文件!)
在这里插入图片描述
我们查看提示后,居然把.htaccess这个漏洞也补上了
我们只能查看源代码
在这里插入图片描述
同第四关对比,通过源码可以发现本关对文件后缀名没有进行大小写转换
如果不将后缀名转换为小写的话,完全就可以写成PHP3之类的绕过黑名单。因为黑名单只是禁止了php3和pHp3,当有小写转换的时候,无论怎么写都绕不过php3这个禁止,现在就不行了
将一句话shell后缀名改为PHP3
在这里插入图片描述
在这里插入图片描述
发现确实上传成功
欲知后事如何,请听下回分解!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值