HTB-GoodGames-WriteUp

💡 原文中文,约1900字,阅读约需5分钟。
📝

内容提要

使用nmap扫描目标IP,发现80端口开放并进行SQL注入,获取admin用户信息。通过模板注入反弹shell,确认在docker容器内。发现22端口开放,成功使用augustus账户ssh连接并获取root权限。

🎯

关键要点

  • 使用nmap扫描目标IP,发现80端口开放。

  • 通过sqlmap进行SQL注入,获取admin用户信息,密码为md5加密。

  • 使用admin账号和密码登录,发现新的url并进行解析。

  • 访问新的url,发现是flask后台,尝试进行模板注入。

  • 通过模板注入反弹shell,确认在docker容器内。

  • 发现22端口开放,使用augustus账户ssh连接成功。

  • 查看内网主机,发现目标docker机器IP地址。

  • 考虑将具有root权限的/bin/sh文件放入/home/Augustus文件夹并赋予SUID权限。

  • 再次通过ssh连接到宿主机,获得root权限的shell。

🔎

延伸解读

SQL注入的风险与防范

文章中通过SQL注入获取admin用户信息,显示出系统在输入验证方面的脆弱性。企业应加强数据库的安全性,采用参数化查询和输入过滤等措施,防止此类攻击。

Docker容器的安全隐患

在Docker容器内发现root权限的shell,表明容器安全配置不当可能导致严重后果。建议定期审查容器的权限设置,确保不必要的权限被限制,降低潜在风险。

模板注入的潜在威胁

通过模板注入反弹shell的方式,展示了Flask应用的安全隐患。开发者应关注模板引擎的安全性,避免使用不安全的用户输入,确保应用的整体安全性。

延伸问答

如何使用nmap扫描目标IP?

使用nmap扫描目标IP可以发现80端口是否开放。

SQL注入是如何进行的?

通过sqlmap进行SQL注入,可以获取admin用户信息,密码为md5加密。

如何通过模板注入反弹shell?

使用模板注入点,可以执行反弹shell的命令,确认在docker容器内。

如何通过SSH连接到docker容器?

发现22端口开放后,可以使用augustus账户进行SSH连接。

如何获取root权限?

可以将具有root权限的/bin/sh文件放入/home/Augustus文件夹并赋予SUID权限,然后通过SSH连接获得root权限的shell。

在docker容器内如何查看内网主机?

使用hostname命令可以查看内网所有主机,发现目标docker机器的IP地址。

🏷️

标签

➡️

继续阅读