moectf-week5
Moe论坛
RCE 木马上传 SUID XSS bot
这周就做了这题,这题的知识点比较综合,也感谢管理员给出了一些引导。
首先打开是一个登录注册的界面,先注册登录一个账号看看是个什么情况。注册的时候发现是有管理员账号的,估计也是要进行提权操作或者登录管理员账号。

使用 <script>alert(1)</script> 进行试探。
发现是没有过滤 <script> 字段的。
那么接下来就得思考我需要获取什么信息。
使用 burpsuite 抓包时发现我们是带有特殊的 cookie 去访问页面的

我的第一反应是让这个 bot 访问页面的时候我进行 XSS 页面劫持,让它携带 cookie 等的信息发送到我暴露在公网的 IP 下。
混合型 XSS
1 | <script> |
encodeURIComponet()使用 URL 编码是为了防止 cookie 中含有 ; 等的字符导致报错。

那么这里的难点就是要找个地方来显示出这个 bot 的 cookie,既然题目可以进行发帖的操作那么我想着要不让 bot 也把它的信息以发帖的方式发出。
抓包来查看如何进行发帖。
1 | <script> |
获取到 admin 的 cookie 信息,使用浏览器的控制台进行 cookie 修改。
1 | document.cookie="PHPSESSID=96df6978bcb753da5b5a12cfeeeb8d9c; path=/" |
path=/ 是对该网页的所有路径生效。
登录管理员页面后发现了一个上传 md 文件的页面。
注意到它这个上传其实不限制后缀,那么就可以尝试 php 的木马上传来看看能不能 webshell 获取信息。
这里后缀有些过滤,查看源代码发现了被过滤的后缀。
1 | var blacklist = ['php', 'php3', 'php4', 'php5', 'php7', 'phps','.htaccess']; |
其实还有 phtml 是没被过滤的,这个是可以上传的。
上传一句话木马后里面的文本被转化进行了输出。

这里其实我找了挺久的,最后问了一下管理员说是找不到得爆破了,于是我尝试了 dirsearch 来进行爆破。
扫出这么多路径锁定 fileadmin,打开后发现权限不足,我们再对这个路径进行爆破。
最后扫出来是 fileadmin/user_upload 访问上传的 hptml 发现是可以找到的,再利用蚁剑进行连接。
再根目录下发现了 f139 文件,看大小和名称已经知道肯定是放 flag 的地方了,但也是权限不够无法访问,他这个属性是 0700 只有这个文件的所有者才能访问。
Web反弹shell+SUID命令提权
一开始我想尝试利用蚁剑的终端来直接提权,但是这题禁止了 sudo 。
File://。
这里还是需要读一下这个网页有什么内容的,在 /data/forum.db 路径下找到了管理员的密码。
最后我采用的是 SUID 提权。
浅谈 linux SUID 提权
管理员提示说这题的 SUID 有点“魔改”。
先 find / -user root -perm -4000 -print 2>/dev/null 查找一下 SUID 文件
hostname 文件(这个应该就是魔改的点,正常人谁看这个文件啊),它旁边还把源码给放出来了,不用去读那个二进制的文件。

最后利用这个 hostname 进行读取,成功拿到了 flag。


管理员聊天记录









