zoukankan      html  css  js  c++  java
  • 代码注入

    代码注入漏洞:

    OWASP将其定义为在客户端提交的代码在服务器端接收后当作动态代码或者嵌入文件处理。Wikipedia将其定义为客户端所提交的数据未经检查就让Web服务器去执行。

    一:按照owasp分类,以下漏洞可以视作代码注入:

    1.OS命令执行

    1 <?php
    2     $command=$_REQUEST["command"];
    3     system($command);  
    4 ?>

    2.文件包含

    1 <?php
    2     $page=$REQUEST["page"];
    3     include($page);
    4 ?>

    3.动态函数调用

     1 <?php
     2     function A(){
     3         echo "A";
     4 }
     5     function B(){
     6         echo "B";
     7 }
     8 $func=$_REQUEST["fun"];
     9 $func();
    10 ?>

    4.代码执行

    1 <?php
    2     $myvar="varname";
    3     $x=$_GET['arg'];
    4     eval("$myvar=$x;");
    5 ?>

    二:几种常见的代码注入

    1.XML注

      (1)XML是可扩展标识语言的缩写,XML是为传输数据,而非显示数据。

    例子:描述管理员信息(admin.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <manager>
        <admin id="1">
            <name>admin</name>
            <password>admin</password>
        </admin>
        <admin id="2">
            <name>root</name>
            <paaword>root</password>
        </admin>
    </manager>

    XML注入是通过改写XML实现的,与XSS跨站脚本攻击相似,此漏洞利用关键在于闭合XML标签。

    对于上面所述的admin.xml,管理员可以自己更改自己的密码,如果攻击者恰好能掌握password字段,那么就会产生XML注入,如攻击者输入:

    admin</password><admin id="5"><name>hack</name><password>hacker</password></admin>

    最终修改后的代码为:

    <?xml version="1.0" encoding="UTF-8"?>
    <manager>
        <admin id="1">
            <name>admin</name>
            <password>admin</password>
        </admin>
        <admin id="5">
            <name>hack</name>
            <paaword>hacker</password>
        </admin>
        <admin id="2">
            <name>root</name>
            <paaword>root</password>
        </admin>
    </manager>

    这样通过XML注入就可以增加一个新的管理员。

      (2)XML注入时的两大要素为:标签闭合和获取XML表结构

      (3)修复:只需将预定义字符转义即可(具体修复方法以后继续补充)

    2.XPath注入

      (1)XPath是XML路径语言,XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。简单地说,XPath就是选取XML节点的一门语言

      (2)XPath最强大的功能在于逻辑运算,但如果这一点使用不当,则会造成注入漏洞,逻辑运算符主要是or(与)、and(且)

    3.JSON注入

    JSON是一种轻量级的数据交换格式。它是基于Javascript的一个子集。JSON采用完全

    4.HTTP Parameter Pollution

  • 相关阅读:
    java中this关键字
    java继承
    java super关键字
    java String类型存储详解
    java四种访问权限修饰符
    C/C++语言void及void指针深层探索【转】
    Linux Epoll介绍和程序实例【转】http://blog.csdn.net/sparkliang/article/details/4770655
    服务器与wp7的socket通信【转】 http://www.cnblogs.com/linzheng/archive/2011/06/21/2086456.html
    android关于socket编程,以聊天为例【转】http://hi.baidu.com/yaoyuanhuajx/item/9b93d7565f315ba9acc857d7
    Tesseract 3 语言数据的训练方法【转】http://blog.csdn.net/dragoo1/article/details/8439373
  • 原文地址:https://www.cnblogs.com/bulrushlw/p/12932159.html
Copyright © 2011-2022 走看看