主机探测
ip为192.168.31.107
端口扫描
这里注意到22端口被过滤了,需要想办法打开22端口;并且开放了3128端口,这里应该有代理
目录遍历,没发现有用信息
SQL注入获得账号密码
访问80端口,有一个登录框
引入单引号,发现报错
尝试万能密码
email=1' || 1=1#&password=11
这里注意,有过滤OR
,所以我用||
绕过
得到一组账号密码,登录需要用邮箱登录
|
|
成功登录
配置代理ssh登录
登录之后有提示,需要ssh登录服务器,但22端口没法直接访问,又但是3128端口有代理服务。这里可以配置代理,就相当于是本机127.0.0.1访问22端口了,就不会被过滤了。
我用的是proxychains
,安装和配置参考此处
ssh登录john
账户
不过被踢出去了,用ssh -t
参数,强制分配伪终端,在远程机器上执行任何全屏幕程序。这里我用来反弹了shell
尝试升级终端为tty,试了好多方法,靶机上条件有限,于是查看john
的shell配置,发现设置了如果不是交互模式,就退出
这句话出现在之前ssh登录的时候
解决办法就是把.bashrc
重命名,相当于删掉了这个shell配置,于是就可以成功ssh登录
数据库密码泄露
在login.php
中发现了数据库的密码,登录查看数据库
发现了其他用户的密码,如法炮制进行ssh登录
SUDO -l获取root密码
john
无法使用 sudo 命令进行特权操作
登录sara
,sudo -l
查看,发现可以用命令/bin/cat /accounts/*
, /bin/ls /accounts/*
于是查看/root
下的flag.txt
(一般都叫这个文件名),发现了root
用户的登录密码
root登录
总结
1、这里的sql注入不算难,万能密码就给绕过了登录认证,看下sql语句
2、这里的22端口被过滤了,又看到开放了3128端口,这是代理服务默认端口,因此想到配置代理去访问22实现ssh登录
3、提权并不难,主要是这部分的信息收集