跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞

时间:2023-03-09 07:12:38
跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞

什么是Server-Side-Include漏洞


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

指令类型


  • 显示服务端变量<!--#echo var="PATH"-->

    跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞
  • 将文本内容添加到文档<!--#include file="phpi.php"-->

    跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞
  • 执行命令<!--#exec cmd="ping -c 4 172.16.204.1"-->

    跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞
  • 还有其他的,类似<!--#config xx=xxx--><!--#flastmod #fsize-->等等

burp扫描展示可以确认:


跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞

代码分析原理和防御


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"-->


跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞

编码了<> 测试失败


跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞

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


跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞

都编码测试一下也失败


跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞

burp没有问题

跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞

其实还是可以

使用<!--#printenv-->可以获取信息

跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞

高级


水平太菜,无能为力

防御


  • 1、配置禁止ssi和xssi
//例如Nginx的配置文件中
ssi on;//修改为ssi off;
  • 2、输入过滤严格,使用htmlspecialchars函数。