zoukankan      html  css  js  c++  java
  • Apache开启SSI,文件上传Getshell

    一、什么是shtml

    使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为“服务器端嵌入”或者叫“服务器端包含”,是一种类似于ASP的基于服务器的网页制作技术。

    二、SSI指令基本格式

    我这里就列举本文用到的

    程序代码:
    <!– 指令名称=”指令参数”>

    exec
    作用:将某一外部程序的输出插入到页面中
    语法:
    <!–#exec cmd=”文件名称”–>
    参数:
    cmd 常规应用程序
    示例:
    <!–#exec cmd=”cat /etc/passwd”–> 将会显示密码文件
    <!–#exec cmd=”dir”–> 将会显示当前目录的文件夹和文件

    echo
    作用:将环境变量插入到页面中。
    语法:
    <!–#echo var=”变量名称”–>
    示例:
    <!–#echo var=”REMOTE_ADDR”–> 你的IP地址

    具体指令和原理等传送门

    三、搭建上传环境

    1. 这里本地进行搭建,使用的为phpstudy

    2. 搭建并使用Pikachu靶场,把源码放到网站根目录之后,访问,127.0.0.1/pk/index.php

    3. 点击安装即可

    四、Apache开启SSI

    1. D:phpStudyPHPTutorialApacheconf,在此目录找到http.conf

    2. 找到以下两个,把前面的#号去掉

    AddType text/html .shtml

    AddOutputFilter INCLUDES .shtml

    3. 在httpd.conf文件中找到这一行:

    Options +Indexes +FollowSymLinks +ExecCGI

    在后面添加INCLUDES,如下面所示:

    Options +Indexes +FollowSymLinks +ExecCGI +INCLUDES

    /*因为我的是PHP Study所以有个+号,宝塔的话,直接去掉+号就可以了*/

    4. 测试

    REMOTE_ADDR:显示发出请求信息的客户端IP地址。

    往1.shtml写入<!–#echo var=”REMOTE_ADDR” –>,并上传

    成功执行

    五、Getshell

    假如该网站是可以上传除PHP外的文件,尝试绕过也不行,但是该站开启了SSI,那么就可以上传shtml、bat进行Getshell(不过这个是真的少见)

    1. 因为在上传成功的时候,pikachu这里会直接显示文件上传到了哪里,所以可以省去找相对路劲的步骤。

    也可以让其报错显示网站的路径,可以看到它是把上传的文件上传到uploads这个目录

    2. 上传一个带有木马的jpg

    3. 上传一个bat文件,内容写入移动的代码

    Move D:phpStudyPHPTutorialWWWpkvulunsafeuploaduploads1.jpg D:phpStudyPHPTutorialWWWshell.php

    4. 上传stml文件,执行SSI指令

    路径为bat所在的目录

    上传成功后访问11.shtml文件即可

    可以看到已经移动成功

    访问127.0.0.1/shell.php即可

    转载请注明:Adminxe's Blog » 密码保护:Apache开启SSI,文件上传Getshell

  • 相关阅读:
    Java的五个基础面试题 容易搞倒老手的
    新北邦java笔试题
    Mysql面试题及答案
    MySQL取得当前时间的函数是什么 格式化日期的函数是什么
    mysql索引优化面试题
    介绍一下mysql的日期和时间函数
    MYSQL面试题:简单叙述一下MYSQL的优化
    不少程序员都会碰到的三个面试题
    HTTP URLEncoding
    Comparable vs. Comparator in Java
  • 原文地址:https://www.cnblogs.com/cn-gov/p/13127151.html
Copyright © 2011-2022 走看看