1、Pass-01
1、本题考查的前端验证,我们右键查看源代码:
得知js的匹配规则,当我们提交文件之后:
回去调用js函数,进行js前端验证
2、我们可以先上传一个png文件,用bp抓包:
这样就可以绕过前端验证
3、我们修改文件后缀并添加木马内容
放包:
4、访问一下:
2、Pass-02
1、第二关只对文件的MIME进行了验证,即:
对数据包中的Content-Type进行验证;
查看代码:
仅仅验证了这个
2、所以我们上传一个图片,抓包,改为图片马即可:、
3、验证一下:
3、Pass-03
1、这一关,是通过特殊后缀绕过,有些网站某些后缀也能解析;
例如php网站:phtml,php3,php5,php7也可解析为php
2、我们找到phpstudy中httpd.conf配置文件:
搜索:AddType application/x-httpd-php
得到:
这里是将phtml也解析为php文件,我们删除前面的“#”字符,重启即可生效
3、上传:
4、访问一下:
若出现访问之后,直接下载了该文件,参考文章,或者切换一下php版本试试:phpstudy的apache服务器无法解析运行以.php5,.phtml等非.php后缀的文件的解决方法_php显示fcgidinitialenv无效-CSDN博客
5、查看代码:
4、Pass-04
1、上传文件抓包:
此处过滤了很严格,但是.htaccess文件没有过滤
.htaccess文件时Apache服务中的一个配置文件,它负责相关目录下的网页配置。通过.htaccess文件,可以帮助我们实现:网页301重定向、自定义404错误页面,改变文件扩展名、允许/阻止特定的用户或者目录的访问,禁止目录列表,配置默认文档等功能
我们可以再 .htaccess文件中加上:
AddType application/x-httpd-php .png
可以将当前目录下的.png文件解析为php文件
注:
.htaccess文件生效需要http.conf配置文件中设置 AllowOverried All
2、上传.htaccess
上传图片马:
3、访问:
5、Pass-05
1、这里过滤的页很严格,但是没过滤.ini后缀;
user.ini:
是.user.ini就是用户自定义的一个php.ini,php.ini是全局配置文件
内容:
auto_prepend_file = <filename> //访问当前页面任意php文件,相当于包含在该文件头
auto_append_file = <filename> //访问当前页面任意php文件,相当于包含在该文件尾
条件:
1、php语言
2、CGI,即php是nts模式
3、Apache服务器
2、实践:
上传图片马:
访问upload目录下的php文件,即readme.php:
成功getshell
版权归原作者 xxsxss 所有, 如有侵权,请联系我们删除。