[CTF/网络安全] 攻防世界 file_include 解题详析(php伪协议+convert转换过滤器)

这篇具有很好参考价值的文章主要介绍了[CTF/网络安全] 攻防世界 file_include 解题详析(php伪协议+convert转换过滤器)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

姿势

题目描述:怎么读取文件呢?

[CTF/网络安全] 攻防世界 file_include 解题详析(php伪协议+convert转换过滤器),网络安全,# CTF赛题,web安全,php,安全,php伪协议,CTF,网络安全
思路: 由代码审计可知,可通过filename参数构造POC,来读取check.php

POC的构造涉及PHP伪协议,参考链接:文件包含 | PHP伪协议实战

POC:

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

回显如下:

[CTF/网络安全] 攻防世界 file_include 解题详析(php伪协议+convert转换过滤器),网络安全,# CTF赛题,web安全,php,安全,php伪协议,CTF,网络安全

猜测关键字被过滤,怎么办呢?

该题涉及到 convert转换过滤器

常见的convert转换过滤器有这两种:convert.iconv.<input-encoding>.<output-encoding>convert.quoted-printable-encode

对于第一种,即convert.iconv.<input-encoding>.<output-encoding>来说,它通过 PHP 的 iconv 扩展实现,该扩展可以帮助将输入数据从指定的字符编码(<input-encoding>)转换为另一个字符编码(<output-encoding>

其中input-encoding、output-encoding支持的编码格式为:

    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)

对于本题,将初始POC

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

修改为

?filename=php://filter/convert.iconv.UTF-8.UTF-16/resource=check.php

回显如下:

[CTF/网络安全] 攻防世界 file_include 解题详析(php伪协议+convert转换过滤器),网络安全,# CTF赛题,web安全,php,安全,php伪协议,CTF,网络安全
该代码使用了正则表达式来匹配指定的字符串,如果输入中包含了 /base|be|encode|print|zlib|quoted|write|rot13|read|string/i 中的任何一个字符串,就会输出 “do not hack!” 并关闭脚本。

<?php
 if($_GET["filename"]) // 检查输入内容
 {
   $preg_match_username = 'return 
preg_match("/base|be|encode|print|zlib|quoted|write|rot13|read|string/i", $_GET["filename"]);' // 匹配字符串
   ;
   if(eval($preg_match_username))  // 执行匹配,如果输入含有上述字符串
   {
     die("do not hack!");  // 关闭脚本,并输出 "do not hack!"
   }
 }

也就是说我们修改POC之后得到的check.php中的内容其实是逻辑判断代码,与flag无关

故猜想flag在flag.php中,修改POC即可得到flag

[CTF/网络安全] 攻防世界 file_include 解题详析(php伪协议+convert转换过滤器),网络安全,# CTF赛题,web安全,php,安全,php伪协议,CTF,网络安全


总结

以上为[CTF/网络安全] 攻防世界 file_include 解题详析,考察php伪协议和convert转换过滤器相关知识点,读者可躬身实践。

我是秋说,我们下次见。文章来源地址https://www.toymoban.com/news/detail-727616.html

到了这里,关于[CTF/网络安全] 攻防世界 file_include 解题详析(php伪协议+convert转换过滤器)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • [CTF/网络安全] 攻防世界 PHP2 解题详析

    翻译: 你能给这个网站进行身份验证吗? index.php是一个常见的文件名,通常用于Web服务器中的网站根目录下。它是默认的主页文件名,在访问一个网站时,如果没有特别指定页面文件名,则服务器会自动加载index.php文件。 在Web应用程序中,index.php文件通常是网站的入口文件

    2024年02月13日
    浏览(47)
  • [CTF/网络安全] 攻防世界 view_source 解题详析

    题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。 单击鼠标右键,点击查看页面源代码: 使用浏览器菜单:不同的浏览器可能会在不同的位置提供查看页面源代码的选项。 以Firefox为例,打开应用程序菜单即可: 使用快捷键:几乎

    2024年02月13日
    浏览(57)
  • [CTF/网络安全] 攻防世界 wife_wife 解题详析

    该题涉及Java Script原型链污染:JavaScript 原型链污染讲解 可以看到,后端编程语言为Node.js, 简单来讲,通过 newUser.__proto__ 可以访问到新对象的原型 未污染时: 污染时: 我们以知识点的利用为主,查看源代码: 若isAdmin的属性是true,则它为管理员,否则为普通用户;于是我

    2024年02月06日
    浏览(49)
  • [CTF/网络安全] 攻防世界 disabled_button 解题详析

    题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢? 题目提示 前端知识 ,由HTML相关知识可知,该按钮 即input标签 不能提交的原因有以下六种: 没有包含在表单中: input 标签必须包含在表

    2024年02月07日
    浏览(58)
  • [CTF/网络安全] 攻防世界 php_rce 解题详析

    PHP RCE 指的是通过远程代码执行漏洞(Remote Code Execution)来攻击 PHP 程序的一种方式。简单来说,由于PHP应用程序没有正确处理外部输入数据(如用户提交的表单、请求参数等),攻击者通过某些手段向 PHP 应用程序中注入恶意代码,然后通过这些恶意代码实现对受攻击服务器

    2024年02月06日
    浏览(53)
  • [CTF/网络安全] 攻防世界 command_execution 解题详析

    题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。 ping 命令是一个常用的网络命令,用于测试两台计算机之间网络连接的连通性。通过向目标计算机发送 ICMP 协议的数据包,并等待目标计算机返回响应数据包来测试网络的可达性,同时

    2024年02月06日
    浏览(49)
  • [CTF/网络安全] 攻防世界 fileinclude 解题详析(php伪协议)

    由于index.php在/var/www/html目录下,而flag.php与index.php同为php文件,故猜想flag.php也在该目录下。 查看页面源代码获取更多信息: 源代码中看到 @include($lan.\\\".php\\\"); ,即此处存在文件包含。 又因为 $lan = $_COOKIE[\\\'language\\\']; 因此解题思路为:利用php伪协议,构造language参数,来读取该目

    2024年02月07日
    浏览(46)
  • [CTF/网络安全] 攻防世界 simple_php 解题详析

    题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。 $a=@$_GET[\\\'a\\\']; 从HTTP GET请求参数中获取一个名为a的变量,并将其赋值给变量a。@符号用于禁止错误输出,如果不存在参数a则会将变量a设置为NULL。 $b=@$_GET[\\\'b\\\']; 从HTTP GET请求参数中获取一个名为b的变量,

    2024年02月13日
    浏览(47)
  • [CTF/网络安全] 攻防世界 weak_auth 解题详析

    题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。 weak_auth翻译: 弱认证 这个术语通常用来描述一种较弱的安全认证方法或机制,它可能存在安全漏洞,易受到攻击或者被绕过。 在信息安全领域中,弱认证是一种常见的安全威胁。例如,使用简单的密码或者未加

    2024年02月13日
    浏览(48)
  • 攻防世界—file_include

    打开之后发现是一段php代码 可以看出这是段代码有文件包含漏洞 下面是学习部分。。。 着急看题解继续往下滑。。。谢谢。。。 文件包含漏洞(File Inclusion Vulnerability)是一种Web应用程序常见的安全漏洞,也是攻击者常用的攻击手段之一。这种漏洞通常存在于代码中,允许

    2024年02月08日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包