目录
post 下直接注入%00 是不行的,需要把%00 编码变成空白符,截断才有效,才能把目录截断成文件名。改完然后放行。
本关会读取判断上传文件的前两个字节,判断上传文件类型,并且后端会根据判断得到的文件类型重命名上传文件
首先判断图片是否允许上传 gif,gif 图片在二次渲染后,与原图片差别不会太大。 所以二次渲染攻击最好用 gif 图片 图片马;
Pass-11 目录可控%00 截断绕过上传(GET)
代码中使用白名单限制上传的文件后缀名,只允许指定的图片格式。但是$_GET['save_path']服务器接受 客户端的值,这个值可被客户端修改。所以会留下安全问题;
文件上传参数目录可控攻击
上传参数可控
-
- 当 gpc 关闭的情况下,可以用%00 对目录或者文件名进行截断;
- php 版本小于 5.3.4 ;
注意:需要magic_quotes_gpc=off,才可以
首先截断攻击,抓包上传将%00 自动截断后门内容
例如 1.php%00.1.jpg 变成 1.php
显然我们直接上传1.php是不行的,告诉我们只允许上传.jpg|.png|.gif类型文件!
所以我们把1.php文件改为1.jpg,然后进行截断攻击,抓包上传将%00 自动截断后门内容。
例如 1.php%00.1.jpg 变成 1.php
此时发现我们的1.jpg文件上传成功变为1.php文件,然后访问1.php。
访问成功!
Pass-12目录可控%00 截断绕过上传(POST)
我们还是先上传jpg文件,然后进行抓包,
post 下直接注入%00 是不行的,需要把%00 编码变成空白符,截断才有效,才能把目录截断成文件名。改完然后放行。
没有报错,上传成功!
然后访问1.php。
Pass-13 文件头检测绕过上传
getReailFileType 是检测 jpg、png、gif 的文件头;