• bash远程代码执行漏洞


    博客园新闻:http://news.cnblogs.com/n/504506/(如果以下有说错的地方请不吝指出,谢谢~)

    详情可围观上面的链接。因为我们的服务器都是私有网环境,即使要修复也得等到下次安全加固的时候进行。对于这个BUG我比较感兴趣的是:

    env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

    这个测试代码是怎么执行的?于是,拿到terminal中执行结果如下:

    vulnerable
    this is a test

    #注:vulnerable是“易受攻击”的意思,老外出于warning特地用这个单词。

    从上述结果来看,"echo vulnerable" 和 "echo this is a test",都被执行了。"echo this is a test"自不用说,bash -c 就是用来执行string-commands(命令字符串),也就说不管后面的字符串里是什么都会被当做shellcode来执行。这个当然算不上BUG,毕竟受执行权限约束。那么问题的重点就是"echo vulnerable"怎么会被执行的?

    我们先来看 env x='() { :;}; echo vulnerable' env命令大家一般都了解(不了解的跟随传送门去看)。env为接下来的执行命令提供环境变量,拿测试代码解释来说就是:

    bash -c "echo this is a test"在执行的时候存在一个环境变量x,而x呢等于 () { :;}; echo vulnerable ,我们都知道环境变量在使用前都会被初始化,那么 () { :;}; echo vulnerable 就自然而然的被执行了。() { :;};定义了一个函数(function)并且它什么也不做,而后的echo vulnerable被解析后得到了执行权。那么echo vulnerable换成其他更具破坏性的代码后果就不堪设想了。(没错,env还支持function作为环境变量,不信执行:env FUNC='() { echo OK;};' bash -c "FUNC")

    #注:如果想以env xxx='zzz' bash -c 'yyy'这种形式的渗入式攻击,zzz就必须写成这样: () { :;}; BAD-CODE-HERE

    其详细过程还可参考国外友人的解释:

    http://seclists.org/oss-sec/2014/q3/650
    
    http://www.reddit.com/r/netsec/comments/2hbxtc/cve20146271_remote_code_execution_through_bash/
    
    http://www.reddit.com/r/programming/comments/2hc1w3/cve20146271_remote_code_execution_through_bash/

    上述连接中就有人举例说明了其应用场景:

    假设:

    你的server(apache/nginx)上部署了/var/www/cgi-bin/hi这样一个cgi程序,hi的源码类似如下:

    #!/bin/bash
    echo "Content-type: text/html"
    echo ""
    echo "hai"

    那么,通过curl构造http-header并访问curl -k -H 'User-Agent: () { :;}; echo aa>/tmp/aa'  https://localhost/cgi-bin/hi

    执行后会发现,/tmp/aa这个文件竟然产生了,所以到这里你应该明白了这个bash-remote-code-execution的执行过程及危害了吧。

    针对此BUG解决方案也很简单,那就是赶快升级你的bash,目前相应的patch已经出来了(bash-4.1.2-15.el6_5.1)。

  • 相关阅读:
    【转】大内高手—内存管理器
    [转]内存泄漏测试小工具 LeakDiag
    [转]内存泄漏测试小工具 LeakDiag
    (转)SplitContainer 控件(Windows 窗体)
    (转)c++内存分配优先使用内存池,而不是new,delete
    (转)C++内存池
    LeakDiag 使用注意
    Struts Validator验证器使用指南
    oracle JOB样例
    oralce杀session
  • 原文地址:https://www.cnblogs.com/lichmama/p/3993136.html
Copyright © 2020-2023  润新知