• Pikachu:RCE(Remote command/code execute)


    概述:

      RCE(Remote command/code execute)漏洞,意为“远程命令/代码执行”,分为远程命令执行ping和远程代码执行evel。可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

      远程命令执行,漏洞出现的原因,是没有在输入口做输入处理,应用系统从设计上需要给用户提供指定的远程命令操作的接口。我们常见的路由器、防火墙、入侵检测等设备的web管理界面上,一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。如果,设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器 。其实这就是一个接口,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统,这就是RCE漏洞。

      远程代码执行也是同样的道理,因为需求设计,后台有时候也会把用户的输入作为代码的一部分进行执行,也就造成了远程代码执行漏洞。 不管是使用了代码执行的函数,还是使用了不安全的反序列化等等。
      因此,如果需要给前端用户提供操作类的API接口,一定需要对接口输入的内容进行严格的判断,比如实施严格的白名单策略会是一个比较好的方法。

    Exec“ping”(远程命令执行):

      我们进入页面,提示我们在文本框中写入ip地址,我们就写入127.0.0.1本地地址,成功ping通:

      接下来我们尝试在127.0.0.1后面使用拼接符号,然后添加命令来实现我们相应的目的,这里我们后面跟一个ipconfig,读取网卡的信息,我们看到ip等信息被输出出来:

      127.0.0.1 & ipconfig    

       很明显只是直接进行了拼接,导致产生了注入漏洞,我们来看一下源代码(路径如下图所示),使用了shell_exec()函数,直接将ip和命令拼接起来,实现了远程的命令执行:

    Exec“evel”(远程代码执行)

      进入页面,提示我们提交一个喜欢的字符串,随便输入一个,这里我输入我的名字:

     

     

       返回的结果说我奇怪,他这个结果也蛮奇奇怪怪的。我们来看看源码(路径如下图所示):

      源码中就体现出来了,没有对输入字符进行过滤,直接在下面的网页代码就引用了,下面用eval函数判断,如果报错就会输出‘你喜欢的字符还挺奇怪的’,不报错的话就会执行注入的代码。所以这存在一个漏洞,可以将我们的代码执行,那还客气啥,直接注入代码,我们这里输入一个php的函数:

      phpinfo();(一定要加分号。因为它是语句)   

      它会返回 PHP 所有相关信息。是PHP 系统功能的函数,包括了 PHP 的编译选项及扩充配置、PHP 版本、服务器信息及环境变量、PHP 环境变量、操作系统版本信息、路径及环境变量配置、HTTP 标头、及版权宣告。

       然后我们发现所有的php信息全都出来了。

  • 相关阅读:
    beeline链接hive报错
    Java并发之FairSync和NonfairSync
    如何在 Linux 中将文件编码转换为 UTF-8
    Spring Boot运行原理
    jvm垃圾回收
    jvm调试工具
    Nginx相关
    docker 配置jar ,运行
    centos7的一些安装问题
    Docker
  • 原文地址:https://www.cnblogs.com/FHBBS/p/12605398.html
Copyright © 2020-2023  润新知