skytower:代理绑定本地端口绕过filtered端口


靶机下载地址

1.信息收集

端口扫描:

开放了HTTP和3128端口的Squid代理,其中22端口被过滤了。

看到一个登录页面,先尝试一下简单的SQL注入

注入没有成功,靶机过滤了简单的sql注入,比如过滤掉“or”。尝试把or改为oorr。

成功!提示ssh登录,提供了用户名和密码。

用户名:john
密码:hereisjohn

2.Squid代理绑定SSH

现在有了SSH登录凭据,但是22端口是过滤掉的。然而squid服务是开启的,可以利用这个代理绑定本地端口来获取SSH回话。

proxytunnel -p 192.168.56.101:3128 -d 127.0.0.1:22 -a 1234

代理设置成功后,连接SSH:

管理员似乎很聪明,编辑了这个用户 .bashrc 文件以在连接时终止会话。可以使用 SSH 客户端的 -t参数连接:

接入成功!

3.获取系统用户账密

首先查看login.php,发现了mysql的登录凭据:

连接数据库:

查看数据库内容:

获取到系统登录凭据。

4.提权

尝试切换用户,但是由于管理员的设置,没有办法切换,也只能利用ssh加-t参数的连接的方式。

且当前的john用户没有sudo权限。

用ssh连接到sara用户,sara用户的sudo权限:

可以看到/accounts/后面的**是一个通配符,因此后面的任何内容都可以运行。这意味着像这样的命令:sudo cat /accounts/../../etc/shadow是可以执行的,因为通配符允许我们进行一种形式的目录遍历。

因此用以下命令可以查看root目录下的flag。

sudo cat /accounts/../../root/flag.txt

flag里提供了root的密码:theskytower

5.总结

这个靶机的新知识点:

  • 用Squid代理绕过过滤端口;
  • 目录遍历读取文件;
  • 登录框的简单SQL注入和绕过。

文章作者: Summer One
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Summer One !
  目录