zoukankan      html  css  js  c++  java
  • 跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞

    什么是Server-Side-Include漏洞


    服务端包含漏洞是指发送指令到服务器,服务器会将指令运行完,把运行结果包含在返回文件中发送给你。利用这种漏洞可以获取服务端的信息甚至执行命令,这样的指令是构造在HTML注释中发过去的。当然,因为包含SSI指令的文件要求特殊处理,所以必须为所有SSI文件赋予 SSI文件扩展名。默认扩展名是 .stm、.shtm和 .shtml。

    指令类型


    • 显示服务端变量<!--#echo var="PATH"-->
    • 将文本内容添加到文档<!--#include file="phpi.php"-->
    • 执行命令<!--#exec cmd="ping -c 4 172.16.204.1"-->
    • 还有其他的,类似<!--#config xx=xxx--><!--#flastmod #fsize-->等等

    burp扫描展示可以确认:


    代码分析原理和防御


    function xss($data)
    {
    
        switch($_COOKIE["security_level"])
        {
    
            case "0" :
    
                $data = no_check($data);
                break;
    
            case "1" :
    
                $data = xss_check_4($data);
                break;
    
            case "2" :
    
                $data = xss_check_3($data);
                break;
    
            default :
    
                $data = no_check($data);
                break;
    
        }
    
        return $data;
    
    }
    

    本质是代码在shtml里面就会被执行,那么没啥,来看防御嘛,从代码来看,应该还是过滤,我们来测试测试中级尝试绕过办法。

    绕过


    无防御时候的payload尝试【失败】:<!--#echo var="PATH"-->


    编码了<> 测试失败


    看来转义了",编码"测试<!--#echo var=%22PATH%22-->


    都编码测试一下也失败


    burp没有问题

    其实还是可以
    使用<!--#printenv-->可以获取信息

    高级


    水平太菜,无能为力

    防御


    • 1、配置禁止ssi和xssi
    //例如Nginx的配置文件中
    ssi on;//修改为ssi off;
    
    • 2、输入过滤严格,使用htmlspecialchars函数。
  • 相关阅读:
    天下第一 (spfa判断环)
    网络的可靠性 (最小生成树)
    星际之门(一) (快幂+最小生成树)
    吝啬的国度 建图+深搜
    表达式求值 第九届河南省省赛
    Apple Tree (树形结构变为线性结构+树状数组)
    士兵杀敌(五)(线段树??)
    动物统计加强版
    Supermarket
    生活的烦恼
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/10246103.html
Copyright © 2011-2022 走看看