精华内容
下载资源
问答
  • 目录遍历漏洞

    2020-12-24 18:25:44
    文章目录一、目录遍历漏洞原理二、漏洞示例三、常见绕过四、漏洞防御 一、目录遍历漏洞原理 目录遍历漏洞通过操纵引用带有“点-点-斜杠(…/)”序列及其变体的变量或使用绝对文件路径,可以访问存储在文件系统上的...


    一、目录遍历漏洞原理

    目录遍历漏洞通过操纵引用带有“点-点-斜杠(…/)”序列及其变体的变量或使用绝对文件路径,可以访问存储在文件系统上的任意文件和目录,包括应用程序源代码、配置和关键系统文件。


    二、漏洞示例

    <?php 
    $ template  =  'red.php' ; 
    if  (isset ($ _COOKIE [ 'TEMPLATE' ])) { 
        $ template  =  $ _COOKIE [ 'TEMPLATE' ]; 
    }
    ?>
    

    我们只要使用…/构造相对路径对文件进行遍历就可以达到攻击效果
    … / … / … / … / … / … / … / … / … / etc / passwd


    三、常见绕过

    编码和双重编码:
    %2e%2e%2f   ../
    %2e%2e/  ../
    ..%2f  ../ 
    %2e%2e%5c  ..\
    %2e%2e\ ..\ 
    ..%5c  ..\ 
    %252e%252e%255c  ..\ 
    ..%255c  ..\ 
    
    百分比编码(又名URL编码)
    Web容器对来自表单和URL的百分比编码值执行一级解码。
    ..%c0%af  ../ 
    ..%c1%9c  ..\ 
    

    特定于操作系统

    UNIX系统
    常见的类Unix目录遍历使用该../模式。
    Sudo是Unix中普遍存在的特权管理程序,
    当用户使用glob通配符来指定允许用户运行哪些命令时
    (例如chown /opt/myapp/myconfig/*可以被该命令利用),
    它容易受到此攻击sudo chown baduser /opt/myapp/myconfig/../../../etc/passwd。
    
    windows和DOS目录遍历使用../或者..\
    每个分区都有一个单独的根目录(标记为C:\C可以是任何分区),
    在该目录之上没有公共的根目录。
    这意味着对于Windows上的大多数目录漏洞,攻击仅限于单个分区。
    

    四、漏洞防御

    1、对用户的输入进行验证,特别是路径替代字符如“…/”和“~/”。

    2、采用白名单的形式,验证所有的输入。

    3、合理配置Web服务器的目录权限。

    4、控制返回数据,保证返回数据不会泄露任何和服务器相关的隐私数据。

    5、对用户传过来的文件名参数进行编码

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,239
精华内容 5,295
关键字:

目录遍历漏洞