Pass-12(白名单校验(GET 型 0x00 截断))
先看提示:

一头雾水,只知道了上传路径是可控的
查看源码:

能看懂就看看,反正我是看了同学的笔记得知这是白名单,按照文件名进行处理,并将上传的文件保存到save_path
注:本关需要将phpStudy版本调为5.2.17,关闭magic_quotes_gpc选项。
操作如下:

其他选项菜单->php扩展及设置->参数开关设置->把magic_quotes_gpc关闭。
接下来就可以做题了
将1.php(里面是phpinfo函数)上传并抓包

1.url显示参数 2.显示文件名
修改save_path后的值,表明路径可控,下方将1.php改为1.png用于验证文件类型

本关首先提取了文件后缀名,只允许上传图片文件,但上传路径是可控的,所以我们可以使用%00截断漏洞将上传路径改为文件名。当使用了截断漏洞时,传入的文件名为2.php%001.png,检测时发现后缀为.png,所以没有过滤;保存时由于使用了%00截断,%00后面的字符串不生效,所以最后保存的文件名是2.php
然后send,发现上传成功!
到源文件中查看,发现2.php已经上传成功!

访问该2.php
访问成功!
Pass-13(POST 型 0x00 截断)
查看提示还是说路径可控
额。。。。还是查看源码吧:

分析:本关卡考察基于POST方法的截断上传攻击。POST方法较为特殊,直接在明文中添加%00不会被服务器解码,我们需要修改HTTP包中上传路径对应的十六进制值(改为00)进行截断攻击,其原理与Pass-12相同。
还是将1.php(里面是phpinfo函数)上传并抓包

再发现文件保存路径不再是出现在url中,而是把保存路径和文件名称都写在了Content-Disposition
我们现在需要一个十六进制的截断字符,要写一个+占一下位
将1.php改为1.png同样用于验证文件类型

然后点击Hex,+在里面的编码是2b,将其改为00

点击send,上传成功!
到源文件中查看,果然多了一个3.php文件

访问3.php

访问成功!
Pass-14(文件内容检测(文件头校验))
看提示

介又是神马玩意?
看源码看源码:

分析:通过读文件的前 2 个字节,检测上传文件二进制的头信息,判断文件类型
我们就可以利用图片马绕过检测。
本关phpStudy版本>5.3,在php.ini中开启allow_url_fopen选项(改版本前面有,以下是第二步配置的操作)
其他选项菜单->打开配置文件->phg.ini->用记事本打开->找到allow_url_fopen,将其=On
那么图片马怎么制作呢?
事先准备好一个php文件(里面还是写phpinfo,一句话木马也可以)和一张jpg图片
我这里是1.php和2.jpg,且都在桌面创建的
win+r输入cmd打开命令提示符窗口,cd Desktop进入桌面
再输入copy /b 2.jpg + 1.php 666.jpg

文章详细介绍了多个与Web安全相关的上传漏洞利用技术,包括GET型和POST型0x00截断,文件头校验和getimagesize()函数绕过等。每个部分都提供了源码分析、解题步骤和绕过方法,展示了如何利用这些漏洞上传恶意文件并执行代码。
最低0.47元/天 解锁文章
4069

被折叠的 条评论
为什么被折叠?



