tryhackme--Command Injection(命令注入)

2024-01-09 13:28:37

查看应用程序在哪个用户下运行。

任务1 简介(什么是命令注入?)

命令注入是滥用应用程序的行为,使用与设备上运行的应用程序相同的权限在操作系统上执行命令。例如,在以名为joe的用户身份运行的 Web 服务器上实现命令注入,将在此用户下执行命令,从而获得joe具有的任何权限。
命令注入通常也称为“远程代码执行”( RCE ),因为它能够在应用程序中远程执行代码。

任务2 发现命令注入

a54a09f7c4efa1d340ab678ece230c44
——————————————————
04a1cb87fad0a9b47761afddc48e0bf2
概述了这个 Python 应用程序的工作步骤。

  1. “flask”包用于设置 Web 服务器
  2. 使用“subprocess”包在设备上执行命令的函数
  3. 我们在网络服务器中使用一个路由来执行所提供的任何内容。例如,要执行whoami,我们需要访问 http://flaskapp.thm/whoami

任务3 利用命令注入

检测盲注类型的命令注入(无回显)

(1)ping 和 sleep 命令。以 ping命令 为例,根据你指定的 ping 次数,应用程序将挂起 x 秒。

(2)诸如 > 之类的重定向运算符:执行诸如 whoami 之类的命令并将其重定向到一个新建文件中;然后我们可以使用诸如 cat 之类的命令来读取这个新创建的文件的内容。

使用curl 命令在payload中向应用程序传递数据

检测详细类型的命令注入(有回显)
pingwhoami 等命令的payload的执行结果会直接显示在 Web 应用程序的页面上。

有用的payload

Linux

payload描述
whoami查看应用程序在哪个用户下运行。
ls列出当前目录下的内容,你可能会找到配置文件、环境文件(令牌和应用程序密钥)等文件。
ping此命令将调用web应用程序并挂起,这将有助于测试web应用程序是否存在盲注类型的命令注入漏洞。
sleep这是测试web应用程序是否存在盲注类型的命令注入漏洞的另一个有用的payload。
ncNetcat可用于在易受攻击的web应用程序上生成反向shell,你可以使用此立足点围绕目标机进行导航以获取其他服务、文件或潜在的提权方法。

Windows

payload描述
whoami查看应用程序在哪个用户下运行。
dir列出当前目录下的内容,你可能会找到配置文件、环境文件(令牌和应用程序密钥)等文件。
ping此命令将调用web应用程序并挂起,这将有助于测试web应用程序是否存在盲注类型的命令注入漏洞。
timeout此命令也能调用web应用程序并挂起,如果未安装 ping 命令,它对于测试 web应用程序 是否存在盲注类型的命令注入漏洞也很有用。

任务4 修复命令注入

任务5 实用:命令注入(部署)

任务6 结论

文章来源:https://blog.csdn.net/m0_74317362/article/details/135477794
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。