前言
简单记一下在前段时间的 GKCTF X DASCTF 应急挑战杯中遇到的这个有趣的 CMS,题目不难,但是还蛮有趣的。
预期解
进入题目,是一个蝉知 CMS:
访问 admin.php 见到后台:
后台账号密码为弱⼝令 admin/12345,登陆进入,并在设计处存在可以编辑模板的地方:
但是点击保存时发现存在限制:
请在服务器创建 /var/www/html/system/tmp/fdbe.txt 文件,如果存在该文件,使用编辑软件打开,重新保存一遍。
但是我们没有服务器的权限所以我发创建这个文件,也就暂时无法执行编辑模块等敏感操作,所以我们要想办法将这个 fdbe.txt 上传或写入进去或者直接绕过这里的限制。
我们发现在设置中存在一个微信设置可以设置你的微信公众号,先胡乱填一下:
点击“已完成接入”作进一步设置:
点击保存后发现可以进一步上传微信二维码:
随便上传一个图片后发现图片名变为了你设置的“原始ID”:
经测试,这里在上传二维码图片时可以进行目录穿越,即我们可以通过修改之前的 “原始ID” 来将图片上传到其他目录。那我们便可以通过这里上传我们的 fdbe.txt 文件:
保存后随便上传一张照片:
然后便可以去编辑模板了:
成功 Getshell 并获得 flag:
非预期解
这里应该算不上是一个洞,当时进了后台一直没有找到绕过那个文件判断的方法,始终不能编辑模板。我就到处点啊点,看啊看,突然就 tmd 能编辑了。。。我都不知道是怎么做到的!!!后来复现了好多次才发现了这个非预期。
还是先看到这里,由于存在这个文件验证,我们不能直接编辑模板,要想办法绕过:
我们在设置中发现了“重要操作”选项,发现除了“文件验证”的方法外还有一个“密保问题验证”:
我们勾选这个“密保问题验证”并保存,然后去个人主页中设置一个密保问题:
保存,然后去“设置”里面使用刚刚开启的“密保问题验证”的方式尝试新建一个管理员,这里的作用就是激活刚刚开启的“密保问题验证”:
点击保存即可,然后当前的登录会话变成了经过权限验证后的会话了,此时便可以进行编辑模板等重要操作了:
该 CMS 除了 admin 用户外,还存在一个默认的 demo/demo
用户,使用该用户登录同样可以像 admin 用户那样可以完成以上攻击过程,所以如果管理员不禁用该用户的话便会将网站置于危险当中。
BY:先知论坛
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论