文章目录
- 前言
- 一、回顾上一关知识点
- 二、靶场第十三关通关思路
- 1、看源代码
- 2、bp进行0x00截断绕过
- 3、蚁剑连接
- 总结
前言
此文章只用于学习和反思巩固文件上传漏洞知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!
一、回顾上一关知识点
上一关利用的是%00截断绕过,通过源代码是过滤文件名后把文件名拼接到文件路径的思路,在文件路径进行截断上传,然后成功上传后门。上一关是get请求的文件路径获取,这一关是post请求。
二、靶场第十三关通关思路
- 1、看源代码
- 2、bp进行0x00截断绕过
- 3、蚁剑连接
1、看源代码
$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
$ext_arr = array('jpg','png','gif');
$file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);
if(in_array($file_ext,$ext_arr)){
$temp_file = $_FILES['upload_file']['tmp_name'];
$img_path = $_POST['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;
if(move_uploaded_file($temp_file,$img_path)){
$is_upload = true;
} else {
$msg = "上传失败";
}
} else {
$msg = "只允许上传.jpg|.png|.gif类型文件!";
}
}
发现与上一关不同的是get请求变成post请求,也就是说我们%00截断不会通过url自动解码了,得我们手动解码。
$img_path = $_POST['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;
2、bp进行0x00截断绕过
这里我上传带有木马的jpg文件,然后通过截断上传php文件,有两种方法。
第一种方法,随便输入一个字符这里我输空格,因为好辨认,然后通过bp功能在十六进制改为00,也就是0x00
第二种方法是直接把%00解码,把upload/23.php%00的%00手动解码。
提交即可。
3、蚁剑连接
总结
这一关和上一关差不多,都是00截断。只是这一关路径传参是post请求,若用%00得手动url解码,或者直接任意用一个字符占位然后修改十六进制值为00。此文章是小白自己为了巩固文件上传漏洞而写的,大佬路过请多指教!