pass-01
先随便上传一个php文件,但提示发现使用了js对不法文件进行了检查,是前端验证
上传php代码<?php phpinfo();?> ,使用bp抓包
将后缀名改为php然后放行
复制图片链接访问,得到有关php的所有信息
Pass-02
根据提示可以知道,是在服务端对数据的MIMI进行检查,MIMI验证就是验证文件的类型。
所以思路就是bp抓包修改文件类型
修改Content-Type,而根据查看源码可以看到允许上传的类型有三种:image/jpeg image/png image/gif,所以改为其中一种就可以了
放行后回到主页复制图片地址
然后访问得到所有有关php信息
Pass-03
这题上传了php文件后发现是黑名单验证,禁止上传四种后缀的名单
现在想办法绕过,在网上查了一下后了解到在某些特定的环境中某些特殊后缀会被当做php文件解析php、php2、php3 4 5 6 7以及pht、phtm、phtml,然后用php5试了一下,先将之前的<?php phpinfo();?>文件名改一下
上传后同样复制图片地址,然后另建访问,但发现是空白页
弄了好一会不知道怎么回事,后来在一个博主那里了解到使用phpstudy搭建的upload-labs可能无法加载出这个界面,我的就是,而他给出的方法是修改#AddType application/x-httpd-php .php .phtml为AddType application/x-httpd-php .php .phtml .php5 .php3,然后别忘了#要删除,然后就可以正常访问图片地址
我按他说的试了一下,先打开phpstudy的配置文件下的httpd-conf配置文件
然后修改
按理来说保存过后就可以访问图片路径,但这里没有出结果,我也没找到更好的解决办法,那就先放一下
Pass-04
这题着实不会,因为过滤了太多文件
乍一看还好,往后一看更多
这里参照了别人的博客,利用.htaccess,可以重写文件解析绕过,大概做法如下
先写一个文件命名为.htaccess,这个文件内容的意思是告诉apache遇到jpg文件时按照php去解析
再创建一个php测试文件
最后分别将.htaccess 和xxx.jpg文件上传,然后用浏览器访问xxx.jpg,不过我的是403,搞了一晚上不清楚怎么回事,只说权限不够,那就也放一下,先往后
Pass-05
查看源码,发现过滤了更多后缀,这次连.htaccess文件也被过滤了
但看到源码中过滤数组有小写和大小写混合,但没有纯大写,而下面也没有转小写
因为php文件名是不区分大小写的,所以直接上传
Pass-06
这题先上传上一题的文件,发现果然被过滤
然后查看源码,发现过滤这块有点不一样,这题相比上一题没有trim()函数对文件名进行去空格处理
而关于文件上传的题之前在deepseek上了解到 在windows环境下,系统会自动去除文件名后面的点和空格,而在linux环境下,会保留文件名的特殊字符,我的环境在windows搭建成的,所以就好解决了 方法就是抓包添加空格,进而消耗掉过滤数,然后windows就会帮我删掉空格,那么完成
先上传刚刚的文件,然后抓包添加空格放行即可