HTB-GoodGames-WriteUp
内容提要
使用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地址。