题目地址: http://58.213.63.27:61180/
表
源文件最后附带了一行注释
将 58.213.63.27 加到 hosts 里, 主页写着Give me your shell.
还是看源文件, 注释里有jsfuck, 把最后一对括号去掉, 能得到一个函数:
|
|
里
访问 http://sycshell.sycsec.com:61180/W0Ca1N1CaiBuDa0/read.php?f=index
然后超威蓝猫说pass要这样绕 pass=%0b.1e1
看来要利用包含拿shell, 但是没有上传点.
tips说有这么一个东西: http://58.213.63.27:61180/phpinfo.php
于是知道了这个路径: /home/wwwroot/default/phpinfo.php
, 里面还有一个信息就是 auto_prepend_file = /home/wwwroot/waf.php
用read.php读一下这个waf:
因为正则没有指定flag i于是用大写就能绕过, 谷歌一下这几个关键词, 发现了 zip或phar协议包含文件
有phpinfo的话可以 利用phpinfo信息LFI临时文件
(谷歌一下, 已经找不到原出处了)
于是思路就有了, github一下那篇文章的exp可以发现是真的丑, 于是自己写了个
因为一开始代码写错, ‘#’ 应该用 ‘%23’ 表示, 所以参考原脚本加了pd, 后来发现根本没用嘛 ╮(~▽~)╭, 一次成功
out.zip这样构造:
run.php 就是种shell的脚本, 保险起见放在了 /tmp , 毕竟谁都可以写
最后再用read.php+菜刀一砍, 就拿到了flag