查看应用程序在哪个用户下运行。
任务1 简介(什么是命令注入?)
命令注入是滥用应用程序的行为,使用与设备上运行的应用程序相同的权限在操作系统上执行命令。例如,在以名为joe
的用户身份运行的 Web 服务器上实现命令注入,将在此用户下执行命令,从而获得joe
具有的任何权限。
命令注入通常也称为“远程代码执行”( RCE ),因为它能够在应用程序中远程执行代码。
任务2 发现命令注入
——————————————————
概述了这个 Python 应用程序的工作步骤。
- “flask”包用于设置 Web 服务器
- 使用“subprocess”包在设备上执行命令的函数
- 我们在网络服务器中使用一个路由来执行所提供的任何内容。例如,要执行
whoami
,我们需要访问 http://flaskapp.thm/whoami
任务3 利用命令注入
检测盲注类型的命令注入(无回显)
(1)ping 和 sleep 命令。以 ping命令 为例,根据你指定的 ping 次数,应用程序将挂起 x 秒。
(2)诸如 >
之类的重定向运算符:执行诸如 whoami
之类的命令并将其重定向到一个新建文件中;然后我们可以使用诸如 cat
之类的命令来读取这个新创建的文件的内容。
使用curl
命令在payload中向应用程序传递数据
检测详细类型的命令注入(有回显)
ping
或 whoami
等命令的payload的执行结果会直接显示在 Web 应用程序的页面上。
有用的payload
Linux
payload | 描述 |
---|---|
whoami | 查看应用程序在哪个用户下运行。 |
ls | 列出当前目录下的内容,你可能会找到配置文件、环境文件(令牌和应用程序密钥)等文件。 |
ping | 此命令将调用web应用程序并挂起,这将有助于测试web应用程序是否存在盲注类型的命令注入漏洞。 |
sleep | 这是测试web应用程序是否存在盲注类型的命令注入漏洞的另一个有用的payload。 |
nc | Netcat可用于在易受攻击的web应用程序上生成反向shell,你可以使用此立足点围绕目标机进行导航以获取其他服务、文件或潜在的提权方法。 |
Windows
payload | 描述 |
---|---|
whoami | 查看应用程序在哪个用户下运行。 |
dir | 列出当前目录下的内容,你可能会找到配置文件、环境文件(令牌和应用程序密钥)等文件。 |
ping | 此命令将调用web应用程序并挂起,这将有助于测试web应用程序是否存在盲注类型的命令注入漏洞。 |
timeout | 此命令也能调用web应用程序并挂起,如果未安装 ping 命令,它对于测试 web应用程序 是否存在盲注类型的命令注入漏洞也很有用。 |