前言
欢迎来到我的博客
个人主页:北岭敲键盘的荒漠猫-CSDN博客
本文整理文件包含漏洞的进阶玩法与绕过姿态
不涉及基础原理了
特殊玩法汇总
本地包含
文件包含上传文件
原理:
php的文件包含有着把其他文件类型当做php代码执行的功效,文件上传一般会限制后缀,但是文件包含可以把他当做php源码执行,所以可以写好源码改成jpg,txt等格式上传后包含他们即可。
包含日志文件
原理:
利用日志的记录特性,我们传递一个请求,然后这个请求中放置恶意代码。
然后利用php可以把其他文件当做php源码来执行的特性,让他执行日志文件中的恶意代码。
注意点:
根据日志类型选择数据包的注入点。
比如nginx会记录ip,URL,参数,以及user-agent
URL以及参数涉及到URL编码问题可能不成功,所以在user-agent中注入恶意代码是个不错的选择
常用路径文档:
包含session文件
CTF | 天下武功唯快不破之条件竞争漏洞 - FreeBuf网络安全行业门户
文件包含配合PHP伪协议
原理:文件包含配合PHP支持的伪协议,能够访问,写入,执行一些资源。
具体方法操作:
远程包含文件
原理:如果对方未禁止远程包含,我们就可以自己服务器上放置恶意代码。然后远程包含即可。
allow_url_include = on必须为on(开启)
纯文件包含进行信息收集
windows敏感文件绝对路径
c:\boot.ini #查看系统版本 c:\windows\system32\inetsrv\MetaBase.xml #IIS配置文件 c:\windows\repair\sam #存储Windows的密码 c:\programFiles\mysql\my.ini #mysql配置文件,里面可能有密码 c:\programFiles\mysql\data\mysql\user.MYD #mysql root密码 c:\windows\php.ini #php配置文件
linux敏感文件绝对路径
/etc/passwd #用户密码 /usr/local/app/apache2/conf/httpd.conf #apache2默认配置文件 /usr/local/app/apache2/conf/extra/httpd-vhosts.conf #虚拟网站设置 /usr/local/app/php5/lib/php.ini #php相关设置 /etc/httpd/conf/httpd.conf #apache配置文件 /etc/my.cnf #mysql配置文件 /etc/sysconfig/iptables #查看防火墙策略
绕过姿态
本地包含
大小写混写绕关键字
经典的绕过。
匹配php就换PhP
%00截断绕后缀拼接
原理:低版本PHP会识别%00为末尾,所以后面内容的会失效。
作用情况:
包含内容是拼接的,会在末尾添加后缀让我们找不到包含文件,可以%00截断。
超长路径绕后缀拼接
原理:
Windows
下目录最大长度
为256字节
,超出的部分会被丢弃;
Linux
下目录最大长度
为4096字节
,超出的部分会被丢弃。
所以遇到后缀拼接,可以用/././././让后缀失效。
远程包含绕过
绕后缀拼接
用下列字符绕,有时需要URL编码