vulnyx Ober writeup
信息收集
nmap
dirsearch
获取userFlag和rootFlag
8080就是一个默认页面,没什么东西,80里的默认页面也同样的没什么有用的信息,直接去看一下dirsearch扫到的那个后台页面
是一个登录页,这里的话我会先尝试使用一些常见的弱密码(比如:admin/admin、admin/password、admin/passwd、admin/123456、admin/admin123)登录一下,如果登录不了的话再去测其它的东西。而这里它的账密刚好是admin/admin,所以一试就上去了
然后这里有两个地方可以命令执行
markup那里是一个Twig的模板注入,code那里可以通过编写指定函数来实现RCE(CVE-2022-35944),CVE那里的实现步骤如下:
在code那里写入以下代码
function onStart() {要执行的php代码;}
然后点击上面的预览即可
这里就是一个RCE的点,然后是模板注入那块,那块的发现过程就只能凭经验了,这条路径我是看一位大佬的wp的时候才发现的,在layout的default.htm里可以看到类似模板的东西
所以就可以在markup里尝试一下是否有模板注入,目标网站后端动态语言是PHP,所以就可以试一下smarty和twig,这里是twig模板注入
然后就可以去找payload了,swisskyrepo/PayloadsAllTheThings: A list of useful payloads and bypass for Web Application Security and Pentest/CTF (github.com),有些payload是用不了的,使用过后预览会跳转到报错页面,所以在使用的时候要多找找,多试几个payload。这里我用的是这个:
{{[0]|reduce('system','id')}}
通过上述两种RCE的任意一种都可以把shell反弹回来
然后看一下开放了哪些端口
有一个3306端口,在网站根目录下找一下数据库配置文件
在config目录下有一个database.php,cat一下
在mysql的配置信息中发现了一个被注释的密码,尝试通过它直接登录root
成功登上来了,之后就是分别去root家目录下和c0w家目录下拿到rootflag和userflag了
userflag:42f13248429cf25d105c9f089e02f4cd(MD5)
rootflag:2c3fde40cca7b865e5ebef5ca131a772(MD5)