文件上传基础学习3
文件上传基础学习
三、靶场实操
11、利用windows环境的叠加特性来绕过,upload第10关
在 Windows 环境中上传文件名包含冒号(:)的文件时,Windows 文件系统会解释冒号作为分隔符来标识备用数据流。这可能导致问题,因为 Windows 会认为你试图创建一个备用数据流而不是正常文件名。
如果你尝试上传名为 "a.php:.jpg" 的文件,Windows 可能会将文件名解释为 "a.php",而不是 "a.php:.jpg"。这是因为冒号在 Windows 文件系统中通常用于指示备用数据流的开始。
php和windows环境的叠加属性,以下符号在正则匹配时相等
"等于.
> 等于?
<等于*
-
上传a.php:.jpg,此时可以上传,会在upload路径下生成一个a.php文件,但是内容为空
![]()
-
接着上传a.>>>
![]()
-
再次访问a.php,可以正常访问
12、双写绕过,upload第11关
-
查看页面的源代码
$deny_ext = array("php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess","ini"); $file_name = trim($_FILES['upload_file']['name']); $file_name = str_ireplace($deny_ext,"", $file_name); $temp_file = $_FILES['upload_file']['tmp_name']; $img_path = UPLOAD_PATH.'/'.$file_name;第四行代码是将文件中的后缀名如果在元组中出现则会被置空,因此上传文件的时候,可以试试将文件名进行双写
-
上写文件后缀名并上传
![]()
-
访问上传的文件
![]()
13、目录可控上传攻击,upload第12关
该关卡有php的版本限制以及配置限制
-
先上传一个图片文件,然后修改路径,利用%00截断
![]()
-
查看靶机后台是否上传成功
![]()
-
浏览器中浏览该文件
![]()
14、00截断,upload第13关
这一关卡也是路径可控上传
-
与上一关不同的是,在hex(16进制)中修改
![]()
-
查看靶机后台的文件
![]()
-
浏览器访问
![]()
15、文件包含之图片码,第14关
-
查看源码,检测内容开头的两个字节
-
制作图片码
![]()
-
上传图片码
-
利用文件包含读取上传的图片码
![]()
16、第15关
根据文件的大小判断是否为图片
-
合成图片码
![]()
-
上传图片码
-
利用文件包含访问图片码














浙公网安备 33010602011771号