zoukankan      html  css  js  c++  java
  • Apache SSI 远程命令执行漏洞

    一.漏洞介绍

      SSI 注入全称Server-Side Includes Injection,即服务端包含注入。

      SSI是嵌入HTML页面中的指令,在页面被提供时由服务器进行运算,以对现有HTML页面增加动态生成的内容,而无须通过CGI程序提供其整个页面,或者使用其他动态技术。

      从技术角度上来说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针,即允许通过在HTML页面注入脚本或远程执行任意代码。

      在SSI中,默认扩展名是 .stm、.shtm 和 .shtml。

    二.操作步骤

    1.使用了vulhub靶场,首先打开靶场,靶场位置:vulhub-master/httpd/ssi-rce。

    2.环境搭建:docker-compose  build & docke-compose up -d 。

    3.访问靶场,不同的靶场可能端口号不一样,查看端口号用:docker-compose ps。

    4.上传木马文件

      在上传文件时,是无法直接上传木马文件的,即使上传了隐含木马语句的文件,用工具也是无法连接上的,反正我没有连接上。

      由于采用Apache配置不当,故存在SSI远程执行命令的漏洞,然而又因为在SSI中默认扩展名有 shtml等等,因此上传这样扩展名的文件。

    使用命令 <!--#exec cmd="ls & whoami " -->  或者使用   <!--#exec cmd="ls" -->

    发现是可以上传的,然后进行访问上传这个文件。

    然后就执行了刚才文件里的命令,便得到了相关的信息,当然这只是这个文件下的文件信息,其他文件夹呢?

    三.防御方法

     1.可以关闭SSI这个功能。

     2.过滤特殊字符串(`<,>,#,-,",'`)

    欢迎一起交流。
  • 相关阅读:
    HashMap
    Java内部类应用——静态内部类
    transient关键字和@Transient 注解
    java基本数据类型传递与引用传递区别
    抽象类
    java collection-list详解
    Arrays,ArrayList,以及ArrayList源码分析
    【转载】【剑指offer】面试题40:最小的 k 个数中的优先级队列
    java stack总结
    java Queue
  • 原文地址:https://www.cnblogs.com/huazige/p/15026196.html
Copyright © 2011-2022 走看看