Vulnhun之Ted[Session代码执行]


又到了Vulnhub渗透时间,本次的靶机难度不大,写他的主要目的是记录一下session代码执行这个洞,原来一直没有遇到过,还算是一个较为稀少的漏洞。

靶场下载地址

https://www.vulnhub.com/entry/ted-1,327/

测试环境

攻击IP 说明 靶机IP
172.17.135.30 pc 172.17.135.68
172.17.135.15 VM-kali 172.17.135.68

信息收集

从VM-exsi获取到了虚拟机的IP地址

image.png-63.7kB

先获取一下靶机开放的端口

nmap -T4 -A -sS -p 1-65535 -v 172.17.135.68

image.png-63.7kB

发现靶机仅开放了80端口——http服务,下一步针对WEB页面进行访问

渗透测试

image.png-34.4kB

主页面是登陆页面,首先尝试弱口令登陆,经测试没有成功,观察页面的加载情况

image.png-49.4kB

发现加载了authenticate.php,猜测应该是对我们输入的用户和密码进行判断,直接Burp抓包分析一下

image.png-62.5kB

发现返回值提示我们password的Hash值不对,Hash的加密方式很多,我们需要一个一个进行尝试

image.png-11.4kB

fuzz发现密码为admin的Hash256

8C6976E5B5410415BDE908BD4DEE15DFB167A9C873FC4BB8A81F6F2AB448A918

image.png-73.5kB

成功登陆,进入网站后台

image.png-28.6kB

看到输入框,让我们搜索东西,先测试一波XSS

image.png-26.1kB

Fuzz的时候发现可以直接搜索敏感文件

image.png-284.5kB

不过需要我们指出完整文件路径,继续研究后台,发现存在cookie.php页面

image.png-99.2kB

主要就是介绍一下Cookie的功能和作用什么的,所以根据题目的提示,应该是让我们从cookie入手

查看一下自己的Cookie

image.png-33kB

既然存在文件读取的漏洞,下一步就是明确Cookie存储的地址,这个时候就需要引进Session,php的环境的用户状态一般都是以session的形式存储在linux环境中,默认目录路径为

/var/lib/php/sessions

image.png-7.7kB

具体存储文件为

sess_用户PHPSESSID

例如本题,用户的PHPSESSID为ifgr4bod7veb4685fggkl3j8l7

那么session存储的文件名称为:

sess_ifgr4bod7veb4685fggkl3j8l7

存储的路径为:

/var/lib/php/sessions/sess_ifgr4bod7veb4685fggkl3j8l7
或者
/var/lib/php/sessions/sess_ifgr4bod7veb4685fggkl3j8l7

尝试查询一下

image.png-32.6kB

成功查询出文件内容,分析存储文件内的内容
发现user_pref的内容会直接保存在文件中,尝试在前端修改Cookie中user_pref的值,修改为php文件

<?php phpinfo();?>

在存入Cookie时,进行URL编码

image.png-105.2kB

成功执行phpinfo()函数,说明我们可以通过包含session文件来写入恶意代码,尝试写入恶意代码

<?php system($_GET['a']);eval($_POST['b']);?>

image.png-11.3kB

image.png-80.3kB

成功执行命令,下一步就是反弹shell提权了

image.png-70.7kB

成功反弹shell,下一步获取持续性shell

image.png-7.8kB

image.png-28.3kB

进行sudo命令的时候发现,在进行apt-get的时候不需要我们输入root密码即可以root用户运行,我们可以尝试利用在运行apt-get的时候提权

根据网上的EXP构造payload

image.png-44.3kB

sudo apt-get update -o APT::Update::Pre-Invoke::="/bin/bash -i"

image.png-28kB

成功提权,获取到Root权限


发表评论

电子邮件地址不会被公开。 必填项已用*标注