【upload靶场1-11】基础关卡:特点、分析、利用

目录

Pass1(前端验证)

特点:

分析:

利用:

Pass2(MIME之content-type验证)

特点:

分析:

利用:

Pass3(黑名单后端验证)

特点:

分析:

利用:

Pass4(.htaccess文件配置)

特点:

分析:

利用:

Pass5(用户自定义配置文件)

特点:

分析:

利用:

Pass6(大写未统一,绕过黑名单)

特点:

分析:

利用:

Pass7(未去空格,绕过黑名单)

特点:

分析:

利用:

Pass8(未去点号,绕过黑名单)

特点:

分析:

利用:

Pass9(添加::$DATA,绕过黑名单)

特点:

分析:

利用:

Pass10(检测规则的一次性,绕过黑名单)

特点:

分析:

利用:

Pass11(双写绕过,绕过黑名单)

特点:

分析:

利用:


Pass1(前端验证)

特点:

上传文件后缀限制

分析:

要求上传jpg png gif 类型文件

 右键查看元源码

这里调用了一个checkFile函数,找到它

是前端验证

可以知道这个函数是用来检测文件类型的

利用:

1、可以尝试把checkFile函数删了,变成return true ,或者直接删了

2、使网页处在JS disabled状态,再上传(Script Switch插件)

3、上传shell.png,而后使用bp抓包改为shell.php


使用方法三:

 改后---->放包

 上传成功了

 打开图片获得图片地址

 复制shell地址

 粘贴shell地址,和自己设置的密码

 连接成功



Pass2(MIME之content-type验证)

特点:

后端检测

content-type检测

分析:

 右键查看元源码

这里调用了一个checkFile函数

未在前端找到这个函数,应该是后端检查


上传正常的jpg文件

 

 上传非正常后缀的php文件

 

 


正常文件和非正常文件的content-type值不一样,可能是这里存在后端检查

利用:

1、上传正常文件(png,jpg,gif),bp抓包修改文件

2、上传非正常文件(php),bp抓包修改content-type值


使用方法一:

 改后---->放包

 

 

 上传成功了

 

 打开图片获得图片地址

 复制shell的地址

蚁剑(菜刀、冰蝎)连接

 粘贴shell地址,和自己设置的密码



Pass3(黑名单后端验证)

特点:

绕过黑名单

分析:

 右键查看元源码

这里调用了一个checkFile函数

未在前端找到这个函数,应该是后端检查


上传非正常后缀的php文件无法上传

考虑是否是后端设置了白名单、黑名单

利用:

1、上传配置的.htaccess(将所有文件解析为php)(针对白名单)

2、上传非正常文件(php),bp抓包对后缀进行爆破(针对黑名单)


使用方法二:

 抓包---->爆破

 ​​​​​​

 这里可以使用爆破的字典

 

 推测是基于黑名单的过滤,因为存在能够注入的

 

 上传成功了

 

 打开图片获得图片地址

 复制shell的地址

蚁剑(菜刀、冰蝎)连接

 粘贴shell地址,和自己设置的密码



Pass4(.htaccess文件配置)

特点:

.htaccess文件(分布式配置文件):

1、默认:不开启此功能

2、作用:针对目录改变配置的方法

3、位置:在特定的文档目录中放置一个包含一个或多个指令的文件

4、影响:作用于当前目录及其所有子目录

5、功能:文件夹密码保护、用户自定义重定向、自定义404页面、扩展名伪静态化、禁止特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表

6、用法:(有效影响范围内)

AddType application/x-httpd-php .png (.png文件会被当做php文件解析)

SetHandler application/x-httpd-php(所有文件都被当做php文件来解析)

分析:

.htaccess前提:

1、服务器:apache

2、功能点:能够上传.htaccess文件

3、配置:httpd.conf中AllowOverride All 并且有LoadModule rewrite_module modules/mod_rewrite.so

4、权限:上传的目录有可执行权限


右键查看元源码

这里调用了一个checkFile函数

未在前端找到这个函数,应该是后端检查


使用第二、三关方法,上传修改后的非正常后缀的文件都无法上传

所有可能的都已经进黑名单(从题目设计目的理解)

考虑利用特殊后缀去除问题

利用:

1、上传配置的.htaccess(将所有文件解析为php)

2、添加特殊文件名后缀拼接php后

因为windows系统限制,当0x81~0x99(使用Hex添加)在文件名结尾时,会被自动去掉,结尾的空格和点(在文件名后加)也是同理


配置好.htaccess文件

SetHandler application/x-httpd-php

 上传.htaccess文件

(如果禁止上传,可以先命名为1.htaccess,后抓包修改为.htaccess)

 

上传图片马 

 ​​​

上传成功

 

 

打开图片获得图片地址

复制shell的地址

蚁剑(菜刀、冰蝎)连接

粘贴shell地址,和自己设置的密码



Pass5(用户自定义配置文件)

特点:

.user.ini用户自定义配置文件使用

分析:

.user.ini使用前提:

1、脚本语言:PHP

2、服务器:使用CGI/FastCGI模式

3、配置:php.ini中user_ini.filename = ".user.ini",user_ini.cache_ttl =某个数

4、权限:上传的目录有可执行权限


右键查看元源码

这里调用了一个checkFile函数

未在前端找到这个函数,应该是后端检查


使用第二、三、四关方法,上传修改后的非正常后缀的文件都无法上传

考虑:

是否将大小写统一后过滤

是否可利用系统特性

是否存在爆破可能

是否可以利用配置文件

利用:

1、使用bp抓包后,将文件名改为shell.php. .(点空格点)

2、本关未将大小写统一,然后验证,可以尝试爆破

3、利用用户自定义配置文件.user.ini


配置好.user.ini文件

auto_propend_file=shell.png

 

 

 上传.user.ini配置文件

(如果禁止上传,可以尝试修改后改包)

 

 

上传图片马 

 

上传成功

 

打开图片获得图片地址

复制shell的地址

蚁剑(菜刀、冰蝎)连接

粘贴shell地址,和自己设置的密码



Pass6(大写未统一,绕过黑名单)

特点:

未使用strtolower()函数,是大小写统一

分析:

后面关卡应该基本上是后端检查


前面的.htaccess文件.user.ini等都在黑名单中了

考虑:

是否将大小写统一后过滤(strtolower函数)

是否可利用系统特性(即点空格点,还有考虑能否被解析)

是否存在爆破可能(即黑名单过滤不全)

利用:

1、使用大写绕过黑名单


上传图片马 

 

上传成功

 

打开图片获得图片地址

复制shell的地址

蚁剑(菜刀、冰蝎)连接

粘贴shell地址,和自己设置的密码



Pass7(未去空格,绕过黑名单)

特点:

没有使用trim()函数,进行首尾去空

分析:

后面关卡应该基本上是后端检查


考虑:

是否可利用系统特性(即点空格点,还有考虑能否被解析)

是否存在爆破可能(即黑名单过滤不全)

是否能够利用空格绕过

利用:

1、后缀首位加空格


在后缀点后面加一个空格

上传图片马 

 

上传成功

 

打开图片获得图片地址

复制shell的地址

蚁剑(菜刀、冰蝎)连接

粘贴shell地址,和自己设置的密码



Pass8(未去点号,绕过黑名单)

特点:

没有使用deldot()函数,去掉文件名末尾的点号

分析:

后面关卡应该基本上是后端检查


考虑:

MIME检测:如content-type值

点空格点:是否可利用系统特性(还有考虑能否被解析)

过滤不全:是否存在爆破可能

空格:是否能够利用空格绕过黑名单

点号:是否能够利用点号绕过黑名单

利用:

1、在文件名后加点号

(windows可能会将点号直接去掉,需要在bp里面改)


上传图片马 (在bp里面加点号)

 

上传成功

 

打开图片获得图片地址

复制shell的地址

蚁剑(菜刀、冰蝎)连接

粘贴shell地址,和自己设置的密码



Pass9(添加::$DATA,绕过黑名单)

特点:

没有对::$DATA(流文件)进行过滤

分析:

后面关卡应该基本上是后端检查


考虑:

MIME检测:如content-type值

点空格点:是否可利用系统特性(还有考虑能否被解析)

过滤不全:是否存在爆破可能

空格:是否能够利用空格绕过黑名单

点号:是否能够利用点号绕过黑名单

流文件:是否能够利用::$DATA流文件进行绕过

利用:

1、在文件名后加点号

(windows可能会将点号直接去掉,需要在bp里面改)


还是需要在bp里面改

 

上传图片马 (在bp里面加::$DATA)

 不知道对这个content-Type有没有检测

在文件名后加上::$DATA

 

上传成功

 

打开图片获得图片地址

复制shell的地址

蚁剑(菜刀、冰蝎)连接

粘贴shell地址,和自己设置的密码



Pass10(检测规则的一次性,绕过黑名单)

特点:

检测规则,会去掉对应的预先设定字符

但未循环执行

分析:

后面关卡应该基本上是后端检查


考虑:

MIME检测:如content-type值

点空格点:是否可利用系统特性(还有考虑能否被解析)

过滤不全:是否存在爆破可能

空格:是否能够利用空格绕过黑名单

点号:是否能够利用点号绕过黑名单

流文件:是否能够利用::$DATA流文件进行绕过

逻辑漏洞:是否循环执行检测

利用:

1、使用.空格.来绕过,即shell.php. .

(还剩余的未过滤的点号,因为windows会将点号直接去掉)


上传图片马 (在bp里面加. . )

 

 不知道对这个content-Type有没有检测

 

在文件名后加上. .(点空格点)

 

上传成功

 

打开图片获得图片地址

复制shell的地址

蚁剑(菜刀、冰蝎)连接

粘贴shell地址,和自己设置的密码



Pass11(双写绕过,绕过黑名单)

特点:

检测规则,会去掉对应的预先设定字符

但未循环执行

分析:

后面关卡应该基本上是后端检查


考虑:

MIME检测:如content-type值

点空格点:是否可利用系统特性(还有考虑能否被解析)

过滤不全:是否存在爆破可能

空格:是否能够利用空格绕过黑名单

点号:是否能够利用点号绕过黑名单

流文件:是否能够利用::$DATA流文件进行绕过

逻辑漏洞:是否循环执行检测

双写:绕过一次检测

利用:

1、使用双写来绕过一次检测,如phphpp


上传图片马 (在bp里面加. . )

 

上传成功

 

打开图片获得图片地址

复制shell的地址

蚁剑(菜刀、冰蝎)连接

粘贴shell地址,和自己设置的密码

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你好!要通关 upload-labs 靶场的第 1-21 关,你需要依次完成每个关卡的任务。以下是通关每个关卡的一些提示: 1. Level 1 - 文件上传漏洞:尝试上传一个恶意文件,看看能否绕过上传限制。 2. Level 2 - 文件包含漏洞:尝试利用文件包含漏洞,读取服务器上的敏感文件。 3. Level 3 - XXE漏洞:在上传的 XML 文件中尝试触发外部实体注入。 4. Level 4 - SQL注入漏洞:利用输入点进行 SQL 注入攻击,尝试获取数据库中的敏感信息。 5. Level 5 - SSRF漏洞:尝试利用服务器端请求伪造漏洞,发起内部网络请求。 6. Level 6 - 文件上传漏洞2:绕过上传限制,上传一个恶意文件。 7. Level 7 - 文件包含漏洞2:利用文件包含漏洞,读取服务器上的敏感文件。 8. Level 8 - 反序列化漏洞:尝试触发反序列化漏洞,执行恶意代码。 9. Level 9 - 文件上传漏洞3:绕过上传限制,上传一个恶意文件。 10. Level 10 - 文件包含漏洞3:利用文件包含漏洞,读取服务器上的敏感文件。 11. Level 11 - XXE漏洞2:在上传的 XML 文件中触发外部实体注入。 12. Level 12 - SSRF漏洞2:尝试利用服务器端请求伪造漏洞,发起内部网络请求。 13. Level 13 - 文件上传漏洞4:绕过上传限制,上传一个恶意文件。 14. Level 14 - 文件包含漏洞4:利用文件包含漏洞,读取服务器上的敏感文件。 15. Level 15 - SQL注入漏洞2:利用输入点进行 SQL 注入攻击,尝试获取数据库中的敏感信息。 16. Level 16 - 文件上传漏洞5:绕过上传限制,上传一个恶意文件。 17. Level 17 - 文件包含漏洞5:利用文件包含漏洞,读取服务器上的敏感文件。 18. Level 18 - 反序列化漏洞2:尝试触发反序列化漏洞,执行恶意代码。 19. Level 19 - 文件上传漏洞6:绕过上传限制,上传一个恶意文件。 20. Level 20 - 文件包含漏洞6:利用文件包含漏洞,读取服务器上的敏感文件。 21. Level 21 - XXE漏洞3:在上传的 XML 文件中触发外部实体注入。 请注意,在完成每个关卡时,要仔细阅读相关提示和代码,理解漏洞的原理,并尝试不同的方法来解决问题。祝你顺利通关!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑色地带(崛起)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值