第11关
第一步:查看源码
这是一个白名单,里面限制了只可以提供它所规定文件jpg,png,gif。

这段 PHP 代码主要实现了文件上传的功能,并进行了一些条件判断和处理:
首先,定义了两个变量
$is_upload并初始化为false,$msg初始化为null。然后,检查是否通过
POST方法提交了表单中的submit按钮。接着,定义了一个允许上传的文件扩展名数组
$ext_arr,包含jpg、png和gif。获取上传文件的扩展名,并使用
in_array函数检查扩展名是否在允许的数组中。如果扩展名合法:
- 获取临时文件的路径
$temp_file。- 生成保存文件的路径
$img_path,路径包括通过$_GET['save_path']获取的保存位置、随机数、当前时间和文件扩展名。- 如果文件移动成功(使用
move_uploaded_file函数),将$is_upload设为true;否则,将$msg设为'上传失败!'。如果扩展名不合法,将
$msg设为'只允许上传.jpg|.png|.gif 类型文件!'。例如,如果用户上传了一个扩展名为
jpg的文件,并且文件移动成功,那么$is_upload会变为true,表示上传成功。如果用户上传了一个扩展名为$msg会被设置为'只允许上传.jpg|.png|.gif 类型文件!',提示用户上传的文件类型不被允许。
由代码可以得知,文件的路径是可控的,所以save_path是一个可控的变量,后面还有一个后缀名需要绕过,这个时候需要使用%00截断。
第二步:修改php版本,和修改php配置文件内容
修改php版本

修改配置文件内容

修改内容为如图magic_quote_gpc = Off

第三步:burpsuite抓包修改文件路径
第四步:查看访问上传的文件即可

第12关:
第一步:查看源码
看着和第11关差不多,但是这里换成了post
第二步:抓包看一下
思路就和第十一关一样,但是post方式不会自行解码,所以要对%00进行urldecode编码。
选中%00右键Convert selection进行url编码后放包。
第三步:查看访问muma.php文件

第13关:
制作图片马的四种方法详解:https://www.cnblogs.com/Linkas/p/15101706.html
第一步:查看源码

第二步:上传图片马
首先,上传一个png图片,在该png图片当中写入我们的php代码,上传成功后,使用文件包含漏洞去调用即可,
别忘了把引用文件的地址写对.其他类型的图片均可以按照此模式进行
需要有一个include.php配合使用
将include.php放在www\upload-labs目录下
include的 内容如下
<?php
/*
本页面存在文件包含漏洞,用于测试图片马是否能正常运行!
*/
header("Content-Type:text/html;charset=utf-8");
$file = $_GET['file'];
if(isset($file)){
include $file;
}else{
show_source(__file__);
}
?>
第三步:查看访问、成功 例如:http://192.168.1.10/upload-labs/include.php?file=upload/1220240728232019.gif

第14关:
第一步:查看源码
关键函数是getimagesize

第二步:修改图片马的内容
getimagesize函数会对目标的十六进制的前几个字符串进行读取。比如GIF的文件头问GIF89a,png的文件头为塒NG。所以这关和第十三关一样,我们只需要用notepad打开图片马,在前面加上GIF89A,保存为22.gif

第三步:访问地址,例如我的是
http://192.168.1.10/upload-labs/include.php?file=upload/9520240728233114.gif

第15关:
第一步 :查看源码
第二步:开启 PHP 的 exif 扩展
要开启 PHP 的 exif 扩展,需要对 PHP 的配置文件(php.ini)进行相应的修改。以下是在 Linux 服务器上开启 exif 扩展的一般步骤:
-
找到 PHP 的配置文件,通常在
/etc/php/7.x/apache2/php.ini或者/etc/php/7.x/cli/php.ini中(其中7.x表示 PHP 的具体版本号,你需要根据实际情况进行调整)。 -
打开配置文件后,搜索关键词
exif,找到以下行:;extension=exif -
去掉前面的分号,将其改为:
extension=exif

-
同时,确保满足 exif 扩展的依赖条件。通常需要启用
php_mbstring.dll扩展,并且确保它在php_exif.dll之前被加载。如果php.ini文件中php_mbstring.dll扩展被注释掉(前面有分号),则去掉分号。另外,建议将包含php_mbstring.dll的行移动到extension=php_exif.dll之前。例如:extension=php_mbstring.dllextension=php_exif.dll

-
保存修改后的 php.ini 文件。
-
最后,重启 apache 服务器或者 php-fpm 服务,以使配置生效。
完成上述步骤后,就成功开启了 PHP 的 exif 扩展。
第三步:访问地址,例如我的是
http://192.168.1.10/upload-labs/include.php?file=upload/2920240728234554.gif




















