upload-labs通过笔记
如果你看到了我的,我还是推荐你去看这个网址(https://blog.csdn.net/waqqy/article/details/134937642),其中更详细和全面,我也从中学习了一些知识。
第一关
绕过方式:
方式一:将要上传的php文件后缀改为图片文件后缀,然后通过bp抓包修改后缀名上传。
方法二:禁用js。通过按F12后按F1就可以找到一个禁用js的选项。
第二关
绕过方式:
上传php文件后用bp抓包,修改Content-Type为以下三种情况,均可上传成功。
情况一:image/gif,情况二:image/png,情况三:image/jpeg。
第三关
绕过方式:
上传以php3或php5为后缀的文件。
第四关
绕过方式:
首先上传含义一句话的文件更改后缀名为jgp或其他可上传的文件后缀。
再上传一个名为 .htaccess的文件。文件内容如下:
<FilesMatch "phpinfo.jpg">
Sethandler application/x-httpd-php
</FilesMatch>
该文件是配置文件,可以改变当前目录的规则。书写的内容意思为设置当前目录所有文件都使用PHP解析,那么无论上传任何文件,只要文件内容符合PHP语言代码规范,就会被当作PHP执行,不符合则报错。
第五关
绕过方式:
因为每种绕过方式只过滤一次,所以可以重复存在同一种绕过方式,或是将靠前的过滤方式放后。
在文件后缀加. .(两个点中间有空格)或是其他的组合,例如. ::$DATA
第六关
绕过方式:
修改php文件后缀的大小写。
第七关
绕过方式:
在php文件后缀加一个空格。
第八关
绕过方式:
在php文件后缀加一个点。
第九关
绕过方式:
在php文件后缀加::$DATA。
第十关
绕过方式:
和第五关一样的绕过方式。
第十一关
绕过方式:
双写php文件后缀绕过。例如:phpinfo.php修改后phpinfo.pphphp
第十二关(POST的00截断)
该绕过方式有两个前提:
php版本小于5.3.4
php.ini的magic_quotes_gpc为OFF状态
绕过方式:
在bp数据包中修改PHP文件后缀为png或其他白名单,在路径save_path 后增加文件名 1.php%00。
第十三关(GET的00截断)
绕过方式:
修改filename后缀,并在uplod后面加上传后的文件名加一个加号是为了下一步方便。
用bp中的hex修改加号位置为00,如下图。
第十四关
制作图片码
方式一:
上传一张图片用bp抓包,在图片最后加一句话木马。
方式二:
用010工具或其他可以显示文件16进制的工具在一句话木马的文件头前加图片的特征码。
特征码如下:
.jpg FF D8 FF E0 00 10 4A 46 49 46
.gif 47 49 46 38 39 61
.png 89 50 4E 47
方式三:
用cmd命令将图片和一句话木马文件合并。
例如:copy 1.jpg/b + 1.php/a 2.jpg
利用方式:
如果通过方式一制作图片码,利用方式如下。
此时需要访问:靶场ip地址/include.php?file=upload/文件上传后的名字。
第十五关
绕过方式:
本关只能使用方式一和方式三制作的图片码。
第十六关
绕过方式:
和上一关一样。
第十七关
绕过方式:
本关对图片进行了二次渲染,通过对比gif图片被渲染后有大部分的内容没有进行改变。
首先将一张gif图片之间上传,再将上传后的文件下载下来。
在010中对比两张图片那一部分没有改变。
此时可以通过图片码制作方式一进行一句话的上传。
第十八关
绕过方式:
成因:本关代码有个漏洞,当上传文件时程序会先保存之后判断是否为图片,不是就删除。
思路:在删除前有一小段时间是可以访问到该文件的,如果在文件被删除之前连接到该文件,程序就无法删除了。所以可以通过边发送一句话的上传请求一边发送连接一句话的请求。来达到一句话上传的目的。
第十九关
绕过方式:
本关的请求方式和上一关有点不一样,此时我们需要包含该图片码。其他还是一样的。
第二十关
绕过方式:
没有对上传的文件做判断,只对用户输入的文件名做判断
后缀名黑名单
上传的文件名用户可控
黑名单用于用户输入的文件后缀名进行判断
move_uploaded_file()还有这么一个特性,会忽略掉文件末尾的 /.
先准备PHP一句话木马,并把后缀名改为PNG再上传
将保存的文件后缀加一个/.
第二十一关
绕过方式:
在上传一句话用bp抓包后需要修改一下部分。
修改content-type
修改POST参数为数组类型,索引[0]为`upload-20.php`,索引[2]为`jpg|png|gif`。
只要第二个索引`不为1`,$file[count($file) - 1]就等价于$file[2-1],值为空
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】