又到了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地址
先获取一下靶机开放的端口
nmap -T4 -A -sS -p 1-65535 -v 172.17.135.68
发现靶机仅开放了80端口——http服务,下一步针对WEB页面进行访问
渗透测试
主页面是登陆页面,首先尝试弱口令登陆,经测试没有成功,观察页面的加载情况
发现加载了authenticate.php,猜测应该是对我们输入的用户和密码进行判断,直接Burp抓包分析一下
发现返回值提示我们password的Hash值不对,Hash的加密方式很多,我们需要一个一个进行尝试
fuzz发现密码为admin的Hash256
8C6976E5B5410415BDE908BD4DEE15DFB167A9C873FC4BB8A81F6F2AB448A918
成功登陆,进入网站后台
看到输入框,让我们搜索东西,先测试一波XSS
Fuzz的时候发现可以直接搜索敏感文件
不过需要我们指出完整文件路径,继续研究后台,发现存在cookie.php页面
主要就是介绍一下Cookie的功能和作用什么的,所以根据题目的提示,应该是让我们从cookie入手
查看一下自己的Cookie
既然存在文件读取的漏洞,下一步就是明确Cookie存储的地址,这个时候就需要引进Session,php的环境的用户状态一般都是以session的形式存储在linux环境中,默认目录路径为
/var/lib/php/sessions
具体存储文件为
sess_用户PHPSESSID
例如本题,用户的PHPSESSID为ifgr4bod7veb4685fggkl3j8l7
那么session存储的文件名称为:
sess_ifgr4bod7veb4685fggkl3j8l7
存储的路径为:
/var/lib/php/sessions/sess_ifgr4bod7veb4685fggkl3j8l7
或者
/var/lib/php/sessions/sess_ifgr4bod7veb4685fggkl3j8l7
尝试查询一下
成功查询出文件内容,分析存储文件内的内容
发现user_pref的内容会直接保存在文件中,尝试在前端修改Cookie中user_pref的值,修改为php文件
<?php phpinfo();?>
在存入Cookie时,进行URL编码
成功执行phpinfo()函数,说明我们可以通过包含session文件来写入恶意代码,尝试写入恶意代码
<?php system($_GET['a']);eval($_POST['b']);?>
成功执行命令,下一步就是反弹shell提权了
成功反弹shell,下一步获取持续性shell
进行sudo命令的时候发现,在进行apt-get的时候不需要我们输入root密码即可以root用户运行,我们可以尝试利用在运行apt-get的时候提权
根据网上的EXP构造payload
sudo apt-get update -o APT::Update::Pre-Invoke::="/bin/bash -i"
成功提权,获取到Root权限