攻防世界-file_include

这篇具有很好参考价值的文章主要介绍了攻防世界-file_include。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目 

攻防世界-file_include

 访问路径获得源码

<?php
highlight_file(__FILE__);
    include("./check.php");
    if(isset($_GET['filename'])){
        $filename  = $_GET['filename'];
        include($filename);
    }
?>

通过阅读php代码,我们明显的可以发现,这个一个文件包含的类型题

文件包含漏洞也是一种“注入型漏洞”,其本质就是输入一段用户能够控制的脚本或者代码,并让服务器端执行。

  • require(),找不到被包含的文件时会产生致命错误,并停止脚本运行。
  • include(),找不到被包含的文件时只会产生警告,脚本将继续运行。
  • include_once()与include()类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。
  • require_once()与require()类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。

读题我们发现我们需要去读取./check.php中的数据,我们尝试用伪协议进行读取,接下来构造payload

?filename=php://filter/read=convert.base64-encode/resource=check.php

攻防世界-file_include

发现行不通,肯定是被过滤了,我去百度filter绕过过滤的时候发现了一种:

转换过滤器
如同 string.* 过滤器,convert.* 过滤器的作用就和其名字一样。
转换过滤器是 PHP 5.0.0 添加的。对于指定过滤器的更多信息,请参考该函数的手册页。
https://www.php.net/manual/zh/filters.convert.php
在激活 iconv 的前提下可以使用 convert.iconv.* 压缩过滤器, 
等同于用 iconv() 处理所有的流数据。 该过滤器不支持参数,
但可使用输入/输出的编码名称,组成过滤器名称,
比如 convert.iconv.<input-encoding>.<output-encoding> 
或 convert.iconv.<input-encoding>/<output-encoding> 
(两种写法的语义都相同)。

 支持的字符编码

当前 mbstring 模块支持以下的字符编码。这些字符编码中的任意一个都能指定到 mbstring 函数中的 encoding 参数。

该 PHP 扩展支持的字符编码有以下几种:

  • UCS-4*
  • UCS-4BE
  • UCS-4LE*
  • UCS-2
  • UCS-2BE
  • UCS-2LE
  • UTF-32*
  • UTF-32BE*
  • UTF-32LE*
  • UTF-16*
  • UTF-16BE*
  • UTF-16LE*
  • UTF-7
  • UTF7-IMAP
  • UTF-8*
  • ASCII*
  • EUC-JP*
  • SJIS*
  • eucJP-win*
  • SJIS-win*
  • ISO-2022-JP
  • ISO-2022-JP-MS
  • CP932
  • CP51932
  • SJIS-mac(别名:MacJapanese)
  • SJIS-Mobile#DOCOMO(别名:SJIS-DOCOMO)
  • SJIS-Mobile#KDDI(别名:SJIS-KDDI)
  • SJIS-Mobile#SOFTBANK(别名:SJIS-SOFTBANK)
  • UTF-8-Mobile#DOCOMO(别名:UTF-8-DOCOMO)
  • UTF-8-Mobile#KDDI-A
  • UTF-8-Mobile#KDDI-B(别名:UTF-8-KDDI)
  • UTF-8-Mobile#SOFTBANK(别名:UTF-8-SOFTBANK)
  • ISO-2022-JP-MOBILE#KDDI(别名:ISO-2022-JP-KDDI)
  • JIS
  • JIS-ms
  • CP50220
  • CP50220raw
  • CP50221
  • CP50222
  • ISO-8859-1*
  • ISO-8859-2*
  • ISO-8859-3*
  • ISO-8859-4*
  • ISO-8859-5*
  • ISO-8859-6*
  • ISO-8859-7*
  • ISO-8859-8*
  • ISO-8859-9*
  • ISO-8859-10*
  • ISO-8859-13*
  • ISO-8859-14*
  • ISO-8859-15*
  • ISO-8859-16*
  • byte2be
  • byte2le
  • byte4be
  • byte4le
  • BASE64
  • HTML-ENTITIES(别名:HTML)
  • 7bit
  • 8bit
  • EUC-CN*
  • CP936
  • GB18030
  • HZ
  • EUC-TW*
  • CP950
  • BIG-5*
  • EUC-KR*
  • UHC(别名:CP949)
  • ISO-2022-KR
  • Windows-1251(别名:CP1251)
  • Windows-1252(别名:CP1252)
  • CP866(别名:IBM866)
  • KOI8-R*
  • KOI8-U*
  • ArmSCII-8(别名:ArmSCII8)

 对于我这种编码能力差的小白,我直接就是一个一个手测,然后呢,发现?filename=php://filter//convert.iconv.SJIS*.UCS-4*/resource=check.php好使,但是没有flag

攻防世界-file_include

那么我们看看flag.php有没有

?filename=php://filter//convert.iconv.SJIS*.UCS-4*/resource=flag.php

 攻防世界-file_include文章来源地址https://www.toymoban.com/news/detail-414853.html

到了这里,关于攻防世界-file_include的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WEB:file_include

    背景知识         php伪协议         文件包含漏洞         php包含漏洞函数 题目 由题目可知这个是文件包含的题目,先用常用的协议先查看一下 payload 出现了  发现filter,base64被过滤了 尝试其他协议 根据filter的绕过方法,可以使用iconv过滤器进行,这个过滤器需要 php 支

    2024年02月15日
    浏览(42)
  • [CTF/网络安全] 攻防世界 Web_php_include 解题详析(php伪协议、data伪协议、file伪协议)

    这段代码首先通过 show_source(__FILE__) 显示当前文件的源代码,然后通过 $_GET[\\\'hello\\\'] 显示 URL 参数中名为 hello 的值。 接下来,代码使用 $_GET[\\\'page\\\'] 获取 URL 参数中名为 “page” 的值,并进行字符串替换,将 php:// 替换为空字符串 这是为了防止通过 URL 参数加载本地文件或其他可

    2024年02月08日
    浏览(46)
  • 攻防世界-WEB-Web_php_include

    打开靶机 通过代码审计可以知道,存在文件包含漏洞,并且对伪协议php://进行了过滤。 发现根目录下存在phpinfo 观察phpinfo发现如下: 这两个都为on 所以我们就可以使用data://伪协议 payload如下: 访问新连接 上面的payload就可以实现命令执行了 找了半天发现flag在fl4gisisish3r3.p

    2024年02月09日
    浏览(40)
  • 攻防世界web题目记录(一)

    打开后获得源码开始审计 第一个php便是重定向到page页面 第二个是上传文件并保存但是首先需要session为admin 接着看第三个是要利用php弱类型 如果设置了id 并且id的浮点值不等于1并且截取id的最后一个值等于9这里可以使用php弱类型1-9绕过 接着上传文件,这里主要是包括有一个目

    2024年02月07日
    浏览(41)
  • 攻防世界ctf题目easyupload做题笔记。

    刚刷完upload-labs靶场,做做ctf题目,发现自己掌握的知识并不牢固。做了半天没有解出来,最后还是看别人的题解做出来的。写下做题过程,也就是wp吧。为了方便以后复习巩固。 本题的主要考点为利用fastcgi的.user.ini特性进行任意命令执行 这里需要绕过的点如下 检查文件内

    2024年02月01日
    浏览(40)
  • Vue 报错: Already included file name ‘××ב differs from file name ‘××ב only in casing.但引入路径是正确的

    vue提示Already included file name \\\'.../components/TagsView.vue\\\' differs from file name 明明引入的文件名和地址都是正确的,但是还是报错误   解决方案一: 把文件名的后缀vue去掉   解决方案一: 把路径前面的点改成@

    2024年02月11日
    浏览(57)
  • STM32 | CubeIDE 配置Include路径

    这个Matrix文件夹是我写代码的,c于.h文件 这样子在Cubeide 生成代码的时候,不会影响到自己编写的原有代码结构。 在这个时候需要关联Include才能正确识别; 点击工程选择Properties 点击C/C++ Build 点击Paths and Symbols Include选项卡中添加 ADD,你要包含的文件夹 如在Workspace中则对应点

    2024年02月15日
    浏览(45)
  • 攻防世界pwn难度1

    首先用IDA进行静态分析 可以看到有一个输入函数 后门函数,直接执行system()   记下函数地址 0x400762 gdb动态分析   走到read函数的位置输入后查看栈   b8 - 10 = 168 需要输入168个字节,再用backdoor的地址覆盖main+34的返回地址即可 编写脚本  最后 cat flag

    2024年02月12日
    浏览(41)
  • 攻防世界-fileinclude

    题目说flag在flag.php中,通过ctrl+uc查看源码,考虑文件上传漏洞。源码如下图所示: 源码如下: 大意是取cookies中lan的值,如果不是0,则执行cookies中名为english的php php://filter php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件

    2024年04月17日
    浏览(39)
  • 攻防世界——dmd-50

    名字就告诉了我们这道题是md5加密 MD5加密就是把你给的任意长字符串转换为一个128位(16字节)的字符串,常用语数字签名        虚拟机跑了一下,看得出来是第一类,需要找到key或者直接拿 很明显的一段密文,提取出来 870438d5b6e29db0898bc4f0225935c0 md5在线解密破解,md5解密加

    2024年01月23日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包