【upload靶场17-21】二次渲染、条件竞争、黑白名单绕过

目录

一、推荐

Pass17(二次渲染绕过)

特点:

分析:

利用:

Pass18(条件竞争)

特点:

分析:

利用:

Pass19(条件竞争)

特点:

分析:

利用:

Pass20(黑名单检测)

特点:

分析:

利用:

Pass21(绕过白名单)

特点:

分析:

利用:


一、推荐

【upload靶场1-11】基础关卡:特点、分析、利用icon-default.png?t=M666https://blog.csdn.net/qq_53079406/article/details/125846616?spm=1001.2014.3001.5501【upload靶场12-16】截断、图片马icon-default.png?t=M666https://blog.csdn.net/qq_53079406/article/details/125870738?spm=1001.2014.3001.5501



Pass17(二次渲染绕过)

特点:

二次渲染:后端对文件的内容进行重写

分析:

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


考虑:

通过对比渲染前后的图片,寻找未被渲染的地方,并在其中插入语句

利用:

上传正常图片

并下载经过上传渲染后的图片

然后使用工具进行比较

 

 

 分析前后未被渲染的地方

 


制作图片马

可以直接使用Hex软件(如010 Editor、winhex等)在未被渲染的位置写入代码

(不能损坏文件,不然可能会被检测为非图片格式)

(是替换原位置代码,且原位置代码无伤大雅)


 上传 图片马


 打开图片获得图片地址

利用文件包含漏洞upload-labs/include.php?file=upload/文件名

(图片显示为乱码则解析成功了)

复制图片马的地址

蚁剑(菜刀、冰蝎)连接

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



Pass18(条件竞争)

特点:

二次渲染:后端对文件的内容进行重写

分析:

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


考虑:

通过对比渲染前后的图片,寻找未被渲染的地方,并在其中插入语句

 

 

逻辑顺序

1、服务器先是将上传的文件保存

2、再将文件的后缀名同白名单对比,符合则进行重命名

3、不符合,unlink()函数删除该文件 


保存到删除之间,会有一段时间差

在这段时间内,文件是在服务器上的,可能被执行

利用:

准备php文件

触发其写一个shell.php命名的webshell

<?php file_put_contents('shell.php','<?php @assert($_POST[pass18]);?>'); ?>

 或者

<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST["Tony"])?>');?>


 

上传php文件

使用bp拦截,并发送到intruder

 清除有效载荷位置

 

设置无载荷,无期限重复

 并设置一下线程----->开始


与此同时运行python脚本,用来不断访问php文件,使其解析成功


打开文件获得上传文件的地址

相应知道了生成文件的地址

蚁剑(菜刀、冰蝎)连接

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



Pass19(条件竞争)

特点:

检测然后重命名

分析:

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


 

 

逻辑顺序

1、服务器先将文件与白名单作对比

2、检查大小看文件是否已经存在

3、再进行重命名


保存到重命名之间,会有一段时间差

在这段时间内,文件还是能被访问到的,并被解析执行

利用:

准备图片马

触发其写一个shell.php命名的webshell

<?php file_put_contents('shell.php','<?php @assert($_POST['123']);?>'); ?>

或者

<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST['123'])?>');?>


使用bp拦截,并发送到intruder

 清除有效载荷位置

设置无载荷,无期限重复

 并设置一下线程----->开始


与此同时运行python脚本,用来不断访问图片马,使其解析成功

(此时的脚本是文件包含去访问)


打开图片获得上传文件的地址

相应知道了图片马的地址

蚁剑(菜刀、冰蝎)连接

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



Pass20(黑名单检测)

特点:

会对用户输入的保存文件名。进行黑名单检测

move_uploaded_file()函数检测

分析:

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


 对上传的文件,没有任何检测

但是会对其保存的文件名进行检测

考虑:

1、对文件名后缀进行爆破(绕过黑名单)

2、将save_name参数进行%00截断

3、bp抓包修改为shell.php/.绕过move_uploaded_file()函数检测

利用:

将写入一句话木马的php文件改为png后缀,并上传

<?php @eval($_POST['123']);?>

 


使用bp拦截

 将保存的文件名修改为.php./后缀


 

打开图片获得上传文件的地址

相应知道了shell文件的地址

蚁剑(菜刀、冰蝎)连接

最后网盘地址为…… upload-20.php/

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



Pass21(绕过白名单)

特点:

分析:

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


 

逻辑流程:
MIME检测:content-type值检测(bp抓包修改)
判空:POST参数是否为空定义$file变量(构造数组绕过分割)
分割:file不是数组则使用explode('.', strtolower($file))对file进行切割,变为一个数组
判断后缀:数组后缀是否合法
命名:数组第一位和$file[count($file) - 1]拼接,文件名file_name
上传


考虑:

1、修改MIME

2、构造数组

3、构造php文件数组的下一个数组为空,没法拼接文件名

利用:

上传一句话木马

<?php @eval($_POST['123']);?>

(上传什么后缀都不要紧,因为他后面有重新保存文件名,所以对上传的文件名没有检测)


使用bp拦截

 

1、修改MIME:image/jpeg

2、构造数组:[0][2]

3、构造php文件数组的下一个数组为空,没法拼接文件名

 

 


打开图片获得上传文件的地址

蚁剑(菜刀、冰蝎)连接

最后网盘地址为

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

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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、付费专栏及课程。

余额充值